javascript - 如何使用 Webdriver IO 单击浏览器 'stop' 按钮

标签 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)

感谢您的帮助!

最佳答案

不,您不能按停止按钮,因为它是浏览器按钮。
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 ) 不等待,只发送击键并继续执行。
输入发送到按钮的 key 只需“按”此按钮。
这样您的测试将不会等待页面重新加载,并将立即继续。

关于javascript - 如何使用 Webdriver IO 单击浏览器 'stop' 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35097092/

相关文章:

python - selenium.common.exceptions.NoSuchElementException : Message: no such element: Unable to locate element using Selenium ChromeDriver Chrome with Python

python - 如何在 python 中使用 webdriver 识别 http 链接的元素

javascript - 如何获取调用函数/对象的上下文?

javascript - Redux 砰的一声。从本地读取数据

Javascript:知道对象何时会被垃圾化

javascript - 页面无法使用 ng-include 滚动 ="function()"- 该代码不再使用

ruby 网络驱动程序 : how to access invisible div's text?

java - 运行 Selenium GUI 测试后回滚数据库

c# - Selenium Webdriver C# Sendkeys (Keys.Arrowdown)

selenium - 在测试自动化中使用 Select 元素而不是实际执行 'element.click()' 错误做法吗?