Selenium – 单击切换元素

我对selenium很感兴趣。

基本上我想单击以下元素来切换元素:

变为

 

之后我只想填写表格并测试其输出。

我为单击此元素编写的方法:

 public void clickAtListView() { WebElement listView = driver.findElement(By.xpath("//div[@class='view-icon fadeIn']")); listView.click(); } 

但是,我得到了:

 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 

任何建议为什么我得到这个例外?

我感谢你的回答!

UPDATE

在我看来,当我放入Thread.sleep(10000);时会显示list元素Thread.sleep(10000); 之前:

但是,我仍然得到例外;(

由于您发送的exception表示该元素不可见采取任何行动。

因此,你的代码

 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")); 

此外,您可以使用上面的选择器,例如切换视图,而不是为选项卡视图和列表视图定义单独的元素。