jquery.show 和 WebDriverException 之后的元素:未知错误:无法聚焦元素

Posted

技术标签:

【中文标题】jquery.show 和 WebDriverException 之后的元素:未知错误:无法聚焦元素【英文标题】:Element after jquery.show and WebDriverException: unknown error: cannot focus element 【发布时间】:2014-02-03 02:27:37 【问题描述】:

我的 javascript 行:

$('#name').show();

我的 webdriver 代码行:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("name"))).sendKeys("Some Name");

当我运行测试时,它会抛出以下异常:

WebDriverException: unknown error: cannot focus element

所以,我一直在寻找解决方案。铬谷歌代码网站报告了一些问题。有很多关于使用javascriptExecutor 的建议。但这对我来说似乎不是一个更好的解决方案,因为它可以制作依赖于浏览器的代码。

【问题讨论】:

【参考方案1】:

几个小时后,我终于找到了使用不带 JavascriptExecuter 的 Actions 的解决方案:

Actions actions = new Actions(driver);
actions.moveToElement(website);
actions.click();
actions.sendKeys("Some Name");
actions.build().perform();

嗯,它对我有用。但是,这种方式是更好的解决方案吗?

【讨论】:

【参考方案2】:

如果您使用量角器(angularjs),则在类似的行上,您可以这样使用它`

actions = protractor.getInstance().actions();
actions.mouseMove(element);
actions.click();
actions.sendKeys("Some text");
actions.perform();`

【讨论】:

【参考方案3】:

聚会有点晚了,但是那些在 python 下使用 selenium 时正在寻找解决这个问题的方法的人可以使用以下代码:

actions = webdriver.ActionChains(driver)
actions.move_to_element(my_div)
actions.click()
actions.send_keys("Some name") # Replace with whichever keys you want.
actions.perform()

my_div 是您之前选择的元素,可能代码如下:

my_div = item.find_element_by_css_selector("div.foobar")

【讨论】:

澄清一下,这个答案在 Python 3.5 中对我有用,我认为接受的解决方案是在 Java 中

以上是关于jquery.show 和 WebDriverException 之后的元素:未知错误:无法聚焦元素的主要内容,如果未能解决你的问题,请参考以下文章

jquery.show 和 WebDriverException 之后的元素:未知错误:无法聚焦元素

jquery $('.hide-show')slice(0,12).show() 没有正确显示 div?

jQuery show() 和 hide() 用于页面上的多个链接

jQuery 效果 - 隐藏和显示

jQuery Show / Hide 在 Android 上不起作用

jQuery里面隐藏和显示效果怎么写?