xpath - 获取网页所有可见元素

标签 xpath selenium firebug css-selectors

我需要获取网页上的所有可见元素才能点击它们,但是用 .displayed 检查每个元素太长了? Selenium 法。是否有另一种方法来创建仅包含可见元素的数组以避免检查。

看来我只需要来自 Firebug 的非灰色元素。

//*[not(contains(@style,'display:none'))]

请求没有解决我的问题,因为不是所有的不可见元素都有这样的属性。

最佳答案

如果您使用的是 C#.NET,则可以使用 lambda 表达式删除任何未显示的元素。如果没有,那么这将行不通。这将为您提供每个 anchor 元素、输入元素和选择元素。然后它将删除所有未显示的内容。

browserDriver.Navigate().GoToUrl("http://www.yahoo.com/");
List<IWebElement> theseElements = browserDriver.FindElements(By.TagName("a")).ToList();
theseElements.AddRange(browserDriver.FindElements(By.TagName("input")).ToList());
theseElements.AddRange(browserDriver.FindElements(By.TagName("select")).ToList());
theseElements.RemoveAll(i => !i.Displayed); //LAMBDA EXPRESSION
foreach (IWebElement element in theseElements)
{
    element.Click();
}

关于xpath - 获取网页所有可见元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8503516/

相关文章:

javascript - Firebug 查找隐藏我的元素的脚本

java - 如何在另一个 html 标签内选择带有 html 源的 web 元素 selenium web 驱动程序

firefox - 带有 HTTP/2 推送 promise 的 Firebug

css - 如何使用 Eclipse (Windows) 保存 Firebug 更改?

testing - QTP 与 Selenium - 比较

java - @FindBy WebElements 未在 PageFactory/页面对象框架中初始化

Python selenium 防止网站被阻塞

html - 具有第一个/li 标记文本 "Something"的 div 中所有//a[@href] 标记的 XPath

使用默认 namespace 绑定(bind)对 XML 进行 PHP xpath 查询

Python:xpath 稳健地获取表中的数据