【问题标题】:Selenuim WebDriver bug? ChromeDriver not focusing on field when setting value?Selenium WebDriver 错误? ChromeDriver在设置值时不关注字段?
【发布时间】:2014-04-14 17:35:40
【问题描述】:

我今天一直在努力解决这个问题;

我有一个包含一些自定义 JavaScript 的输入字段,当该字段的值为空且用户没有单击该字段(即专注于它)时,它会显示一段“提示”文本。否则它会消失。

截至几天前,以下代码在带有此提示 JS 的输入字段中运行良好:

WebDriver driver = chromeDriver;
WebElement fieldWithHint = driver.findElement(By.id("myField"));

fieldWithHint.sendKeys(newValue);

今天它不起作用(因为我已经重新启动了我的机器) - 提示 JS 变得非常困惑并且在输入文本并移动到下一个字段时,然后将文本显示为提示。

我刚刚发现以下方法仍然有效:

WebDriverBackedSelenium driverWrapper = new WebDriverBackedSelenium(chromeDriver, "http://localhost/");
WebElement fieldWithHint = chromeDriver.findElement(By.id("myField"));

driverWrapper.type(fieldWithHint.getAttribute("name"), newValue);

我正在使用 WebDriver for Java(版本 0.9.7376)、最新的 ChromeDriver (2.9) 和 Chrome 版本 34.0.1847.116 m。

我想知道重新启动我的计算机并因此重新启动 Chrome 是否更新了它并导致了这个问题。

还有其他人看过吗?这是一个已知问题吗?

我尝试先单击该字段无济于事。

【问题讨论】:

    标签: java selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    自从升级到 v34 后,我刚刚遇到了一个相关问题。

    我有一页输入字段,每个字段都链接到一个 onblur 事件,我通过输入中的选项卡触发该事件。

    在升级之前,这工作正常,现在跳出最后一个字段,不会触发事件。

    手动选项卡将焦点放在地址栏上,而 selenium 选项卡将焦点放在 DOM 中的第一个元素上。我还没有对 v33 进行过同样的调查,也没有提出过缺陷。

    我知道这与升级有关,因为它在自动更新的网格节点上失败,但在我升级之前在本地很好

    ***编辑***

    设法通过 Chromedriver 重现和提升 (https://code.google.com/p/chromedriver/issues/detail?id=762)

    我的问题是,如果您发送 :tab 并导致焦点转移到地址栏,那么即使您与元素交互,焦点也不会重新应用于元素。

    【讨论】:

    • 证实我的怀疑!不过这很烦人 - Chrome 升级时似乎总是有问题:(
    • 我创建了一个简单的 HTML 页面来尝试复制它,但我认为它一定比我原来的理论复杂一些。
    猜你喜欢
    • 2018-01-06
    • 1970-01-01
    • 2020-08-16
    • 2015-10-10
    • 1970-01-01
    • 2013-07-26
    • 2017-11-25
    • 2019-03-15
    • 2018-09-29
    相关资源
    最近更新 更多