如何使用 selenium webdriver 避免隐藏类

Posted

技术标签:

【中文标题】如何使用 selenium webdriver 避免隐藏类【英文标题】:How to avoid the hidden classes using selenium webdriver 【发布时间】:2016-07-09 22:55:24 【问题描述】:

我正在尝试使用带有 selenium 的类名来引用一个类,但是同一个类得到了一个隐藏标签,该标签具有完全相同的名称和除 ng-show=false 之外的所有其他值

如下:

ul class="nav nav-pills nav-stacked ng-hide" ng-show="false" <br>
ul class="nav nav-pills nav-stacked"

如何引用第二个标签? 我没有尝试@tabIndex,因为有时隐藏的标签不止一个。

【问题讨论】:

【参考方案1】:

你可以通过缺课ng-hide找到。查找元素女巫有课程 nav nav-pills nav-stacked 但不是ng-hide

driver.findElement(By.cssSelector(".nav.nav-pills.nav-stacked:not(.ng-hide) > div"));

或者没有ng-show="false"

driver.findElement(By.cssSelector(".nav.nav-pills.nav-stacked:not([ng-show='false']) > div"));

【讨论】:

很抱歉之前没有正确地提出问题。但我试图在上面提到的 ul 类中引用 Div Class 标签。这个 div 类标签没有提到 ng-hide/show。希望我在这里很清楚..提前谢谢。 @megan 假设 &lt;div&gt; 标签是直接孩子,只需在末尾添加 &gt; div,这将为您提供带有 &lt;div&gt; 标签的直接孩子。我也将它添加到我的答案中。 是的,但它给出了所有的 div 标签。我可以将它限制为第一个 div 标签。谢谢 通过给出类名和 div 让它工作。谢谢你的帮助! @Guy

以上是关于如何使用 selenium webdriver 避免隐藏类的主要内容,如果未能解决你的问题,请参考以下文章

Selenium & webdriver.io 如何使用 executeScript?

如何使用selenium webdriver来判断一个网页加载完毕

如何使用 C# 在 Selenium WebDriver (Selenium 2) 中最大化浏览器窗口?

如何在 ruby​​ 中使用 Selenium WebDriver (selenium 2.0) 客户端设置选项

如何在 Java 中使用 Selenium WebDriver (Selenium 2) 输入文本框?

如何使用Python避免Selenium Webdriver中的SSL认证错误?