如何使用 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 假设<div>
标签是直接孩子,只需在末尾添加 > div
,这将为您提供带有 <div>
标签的直接孩子。我也将它添加到我的答案中。
是的,但它给出了所有的 div 标签。我可以将它限制为第一个 div 标签。谢谢
通过给出类名和 div 让它工作。谢谢你的帮助! @Guy以上是关于如何使用 selenium webdriver 避免隐藏类的主要内容,如果未能解决你的问题,请参考以下文章
Selenium & webdriver.io 如何使用 executeScript?
如何使用selenium webdriver来判断一个网页加载完毕
如何使用 C# 在 Selenium WebDriver (Selenium 2) 中最大化浏览器窗口?
如何在 ruby 中使用 Selenium WebDriver (selenium 2.0) 客户端设置选项