selenium — php web-драйвер: как нажать кнопку на всплывающей странице

Я хочу нажать кнопку «Отправить» на всплывающей странице, используя php web-драйвер. Когда я нажимаю на кнопку, она открывает всплывающее окно подтверждения Boostrap, Теперь я пытаюсь нажать на кнопку в этом всплывающем окне.

page_popup

Когда я использую 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();

}
?>

2

Решение

Попробуйте использовать

driver.switchTo().activeElement() //java code. But should be easy to convert

а затем найти отменить или же согласна кнопку и нажмите. Обязательно дождитесь появления всплывающего подтверждения.

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();

}
0

Вы пробовали, driver.switchTo (). Alert?

Ниже приведен синтаксис Java:

Alert alert=driver.switchTo().alert().
alert.accept() //for accepting the conformation message.
alert.dismiss() //for cancelling the conformation message.
-2
По вопросам рекламы [email protected]