如何点击浏览器'停止'使用Webdriver IO的按钮

时间:2016-01-30 01:54:00

标签: javascript selenium webdriver

小背景信息:我正在测试的程序位于登录墙后面的另一个网站内。只要您验证密码并登录,就可以输入我需要测试的屏幕的直接链接,而无需点击网站。我遇到的问题,一旦我登录,我的自动化测试将等到第一页加载(有时长达40秒),然后再继续测试。我尝试过使用browser.keys(" Escape")但是没有用。

有没有办法使用WebdriverIO来模拟按下的停止按钮或我可以执行的控制台命令?

以下是我用于参考的代码片段。

    // Log into website as user
    browser.waitForVisible(Username, timeout)
        .setValue(Username, "User")
        .setValue(Password, "Password")
        .click(LogInButton)

    // Switch to test website
    .pause(2000)
        .keys('Escape')
        .url(URL)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

不,你不能按停止按钮,因为它是一个浏览器按钮 WebDriver仅支持网页元素,不能与浏览器的控件(按钮,菜单选项等)进行迭代。

但您可以尝试一种解决方法 - 不要使用WebDriver的click()方法单击登录按钮,而是将ENTER键发送到此按钮。

在java中看起来像:

findElement( loginButton ).sendKeys( Keys.ENTER );

而不是:

findElement( loginButton ).click();

这是此方法的javaDoc: https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebElement.html#sendKeys-java.lang.CharSequence...-

click()方法点击元素,然后等待页面加载,而sendKeys(Enter)不等待,只发送一次击键并继续执行。
输入发送到按钮的键只需"按"这个按钮。
通过这种方式,您的测试将不会等待页面重新加载,并将立即继续。