php web-driver:如何单击弹出页面上的按钮

时间:2014-12-29 12:35:49

标签: php selenium selenium-webdriver webdriver

我使用php web-driver点击弹出页面上的提交按钮。当我点击一个按钮时,它打开一个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();

    }
?>

3 个答案:

答案 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.