gpt4 book ai didi

selenium - 元素当前不可见,因此可能无法与之交互

转载 作者:行者123 更新时间:2023-12-01 09:35:36 25 4
gpt4 key购买 nike

目前我正在尝试解析一个示例站点。在该站点中有一个设置为“显示:无”为了应用css效果。我的意思是事实上选择组件可见。

如何为该 html select 组件设置值?

这是我的代码:

 WebElement element = driver.findElement(By.name("paper"));
Select paperList = new Select(element);
paperList .selectByValue("73"); // it gives error
driver.findElement(By.className("btn1")).click();

我正在使用 Java + Selenium WebDriver 2.0

这是一个异常(exception):

Caused by: org.openqa.selenium.remote.ErrorHandler $UnknownServerException: Element is not currently visible and so may not be interacted with Build info: version: '2.14.0', revision: 'unknown', time: '2011-11-29 13:13:16' System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.7.0-ea'

谢谢。

最佳答案

嗯,我能想到有两种不同的方法来处理这个问题。首先清理页面上的css,这样就不会在同一个元素上有两种冲突的样式。其次,我的猜测是您有某种形式的 javascript 启用了选择菜单,该菜单可能在您的 selenium 测试抓取对象并说它不可见后触发。在获取代码之前尝试删除 thread.sleep,仅用于测试目的。如果这样可以解决问题,那么我将创建一个查找 document.readyState 的 javascript,如果它是“完整的”,那么我将开始使用 Selenium 解析页面。

----- 编辑 ------

要使用 selenium 修改 DOM,您需要使用 JavascriptExecutor 类并将其转换为您的 WebDriver。完成此操作后,您可以从页面上的 selenium 应用程序执行 javascript,这意味着您可以操作 DOM。

这是一个例子:

WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('//elementID').removeAttr('display');");

http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions

http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/JavascriptExecutor.html

关于selenium - 元素当前不可见,因此可能无法与之交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com