我使用php web-driver点击弹出页面上的提交按钮。当我点击一个按钮时,它打开一个boostrap确认弹出窗口,现在我想点击这个弹出窗口上的按钮。就像这样。
当我使用xpath找到此按钮时。它低于错误。
ElementNotVisibleException: Element is not currently visible and so may not be interacted with
Build info: version: '2.44.0', revision: '76d78cf', time: '2014-10-23 20:02:37'
System info: host: 'DSS-405', ip: '172.16.12.130', os.name: 'Windows 8', os.arch: 'amd64', os.version: '6.2', java.versi
on: '1.7.0_07'
我是网络驱动程序脚本的新手。请有人帮助我。
更新代码快照
class LoginTest extends PHPUnit_Framework_TestCase {
/**
* @var \RemoteWebDriver
*/
protected $webDriver;
public function setUp()
{
$capabilities = array(\WebDriverCapabilityType::BROWSER_NAME => 'firefox');
$this->webDriver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities);
}
protected $url = 'http://mywebsite.com/user.html';
public function testLogin() {
$this->webDriver->get($this->url);
$confirmBtn = $this->webDriver->findElement(WebDriverBy::xpath('//*[@id="userCommand"]/div[2]/div[2]/button')) ;
$confirmBtn->click();
}
?>
答案 0 :(得分:0)
尝试使用
driver.switchTo().activeElement() //java code. But should be easy to convert
然后找到取消或同意按钮并单击。请务必提供必要的等待确认弹出窗口。
答案 1 :(得分:0)
尝试等待按钮可点击。
public function testLogin() {
$this->webDriver->get($this->url);
$confirmBtn = $this->webDriver->wait()->until(
WebDriverExpectedCondition::elementToBeClickable(
WebDriverBy::xpath('//*[@id="userCommand"]/div[2]/div[2]/button')
)
);
$confirmBtn->click();
}
答案 2 :(得分:-2)
你试过吗,driver.switchTo()。alert?
下面的语法是Java:
Alert alert=driver.switchTo().alert().
alert.accept() //for accepting the conformation message.
alert.dismiss() //for cancelling the conformation message.