Java Selenium—单击切换元素
我正在吃硒 基本上,我希望单击以下元素以切换该元素:Java Selenium—单击切换元素,java,selenium,xpath,Java,Selenium,Xpath,我正在吃硒 基本上,我希望单击以下元素以切换该元素: <div class="view-icon fadeIn" title="" data-placement="top" data-toggle="tooltip" data-original-title="Switch to List View"> <i class="fa fa-bars"></i> </div> 然而,我得到: Exception in thread "main" org.
<div class="view-icon fadeIn" title="" data-placement="top" data-toggle="tooltip" data-original-title="Switch to List View">
<i class="fa fa-bars"></i>
</div>
然而,我得到:
Exception in thread "main" org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with
Command duration or timeout: 50 milliseconds
有什么建议可以解释为什么我会出现这种异常
谢谢你的回答
更新
在我看来,当我放入Thread.sleep(10000)时,列表元素就会显示出来代码>之前:
然而,我还是得到了例外;(因为您发送的异常表示元素不可见,无法执行任何操作
因此,您的代码
WebElement listView = driver.findElement(By.xpath("//div[@class='view-icon fadeIn']"));
获取隐藏元素(例如“视图选项卡”元素)。请尝试此元素
WebElement listView = driver.findElement(By.xpath("//div[@data-original-title='Switch to List View']"));
看起来您只需要向XPath添加一个额外的路径:
driver.findElement(By.xpath("//div/[@class='view-icon fadeIn']/i"));
此外,您可以使用上面的选择器,例如切换视图,而不是为选项卡视图和列表视图定义单独的元素
WebElement listView = driver.findElement(By.xpath("//div[@data-original-title='Switch to List View']"));
driver.findElement(By.xpath("//div/[@class='view-icon fadeIn']/i"));