java - Selenium - 无法单击下拉列表中的链接

标签 java html selenium selenium-webdriver selenium-iedriver

我正在尝试单击菜单中下拉列表中的链接。 Selenium 似乎能够找到这种元素。但无法点击它并给出以下异常:

线程“main”org.openqa.selenium.ElementNotInteractableException中出现异常:无法单击元素

我正在使用 IEDriver 来运行代码。

下面是我用来查找并单击元素的 java 代码:

File file = new File("C:\\IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());          
WebDriver driver = new InternetExplorerDriver();        
driver.manage().window().maximize();
driver.get("url");
driver.findElement(By.xpath("//*[@id=\"Ul1\"]/li[2]/a")).click();           
driver.findElement(By.xpath("//*[@id=\"Ul1\"]/li[2]/ul/li[1]/a")).click();

下面是 HTML 正文:

<body><ul class="sf-menu" id="Ul1"><li class = "current"><a target="bodyFrame" href="http://hostname.default.aspx">Home</a><ul></ul></li><li class = "current"><a href="#Create UsageMenu">Create Usage</a><ul><li class="current"><a target="bodyFrame" href="../SAMPLEAPPDT/Usage.htm" title="Usage Generator (SAMPLEAPP Rating)"">Usage Generator</a>              <ul></ul></li><li class="current"><a target="bodyFrame" href="../NETWORKUG/network_usage/NETWORKUsageUpload.aspx?appId=1" title="NETWORK"">NETWORK</a><ul></ul></li><li class="current"><a target="bodyFrame" href="../NETWORKUG/network_usage/NETWORKUsageUpload.aspx?appId=2" title="RSS Usage Generator"">RSS</a><ul></ul></li></ul></li></ul><iframe name="bodyFrame" id="bodyFrame"  src="" width="100%" frameborder="no"></iframe></body>

请告诉我可能出现的问题

最佳答案

假设您正在使用一些 JavaScript 代码来打开/关闭此下拉列表,您可能需要等待下拉列表打开才能选择该元素,因为该元素尚不可见。在第一次“点击”之后,您的第二次“点击”可能太快。

例如,您可以隐式等待某个 像这样的时间量:

driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);

更好的选择是等待您的元素可见,如下所示:

WebDriverWait webDriverWait = new WebDriverWait(driver, 10);
webDriverWait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"Ul1\"]/li[2]/ul/li[1]/a")));

在单击第一个“a”元素之后、尝试单击第二个元素之前执行此操作。

关于java - Selenium - 无法单击下拉列表中的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46624097/

相关文章:

javascript - 使用 Post 的 PHP 表单。错误 : Undefined array key. 但是当我使用 get 时它可以工作。 (w3schools 示例)

javascript - 如何根据视口(viewport)宽度/高度计算移动背景图像的量

python - Selenium:如何在使用 selenium 单击下拉菜单后解析代码

selenium - 在制作 Maven 项目时出现 "could not calculate build plan"插件错误

java - 导入外部 jar 但仍然出现 "Cannot be resolved"错误

java - Spring MVC 和 Tiles 集成问题

java - 使 Android/Java 代码更高效 - 删除重复项

javascript - Google 字体无法正确加载

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 如何将文本文件内容添加到文本文件包含空格的组合框中?