在属性 href 中查找所有带有特定字符串的“A”标签?

Posted

技术标签:

【中文标题】在属性 href 中查找所有带有特定字符串的“A”标签?【英文标题】:Finding all "A" tags with specific strings in the attribute href? 【发布时间】:2012-05-09 08:19:21 【问题描述】:
            driver.FindElement(By.Name("zipcode")).Clear();
            driver.FindElement(By.Name("zipcode")).SendKeys(zipcode);
            driver.FindElement(By.Name("Go")).Click();

            driver.FindElements(By.TagName("A").  //<---- ?????????

我有一些我开始的 Selenium API 代码。我的目标是在属性 href 中获取所有带有字符串“alertsepy”和刺痛“sevendwarves”的“A”标签,并将所有这些元素返回到一个数组中,以便我可以做一些进一步的处理。我开始了代码,但我真的不太确定如何一直到那里。有谁知道如何使用 Selenium 进行此类查询。

亲切的问候!

【问题讨论】:

$("a[name*=' + search_term + ']") ; ? 【参考方案1】:

你应该使用css选择器:

IList<IWebElement> elements = driver.findElements(By.cssSelector("a[href*=alertsepy],a[href*=sevendwarves]")

此查询将返回具有href 属性的a 节点,该属性包含alertsepy sevendwarves 两个字符串:

<a href="alertsepy.html" > </a>
<a href="sevendwarves.html" > </a>
<a href="http://sevendwarves.org/alertsepy.html" > </a>

或者你可以使用:

IList<IWebElement> elements = driver.findElements(By.cssSelector("a[href*=alertsepy][href*=sevendwarves]")    

此查询将返回具有href 属性的a 节点,其中包含alertsepy sevendwarves 字符串:

<a href="http://sevendwarves.org/alertsepy.html" > </a>

有关普遍可用的 css 选择器的列表,请参阅w3c css selectors。有关 Selenium 查询类型中可用的列表,请参阅 Locating UI Elements。

【讨论】:

【参考方案2】:
List<WebElement> anchortaglist = driver.find Elements(By.Tag Name('a');

【讨论】:

您将获得网页中的所有锚标记

以上是关于在属性 href 中查找所有带有特定字符串的“A”标签?的主要内容,如果未能解决你的问题,请参考以下文章

XPath/HtmlAgilityPack:如何查找具有属性 (href) 特定值的元素 (a) 并查找相邻的表列?

XPath:查找具有特定属性的所有已知标签[重复]

查找带有 beautifulsoup 的特定链接

使用PHP在文件名中查找带有字符串或模式的目录中的所有文件

JavaScript 的内置对象

Python用re正则化模块在字符串查找特定字符串