我想在中找到此链接“我们的状态”的元素<h5>
。我在craigslist中尝试此操作。任何帮助将不胜感激
这是网址:http :
//auburn.craigslist.org/
<html class="">
<head>
<body class="homepage w1024 list">
<script type="text/javascript">
<article id="pagecontainer">
<section class="body">
<table id="container" cellspacing="0" cellpadding="0"
<tbody>
<tr>
<td id="leftbar">
<td id="center">
<td id="rightbar">
<ul class="menu collapsible">
<li class="expand s">
<li class="s">
<li class="s">
<h5 class="ban hot">us states</h5>
<ul class="acitem" style="display: none;">
</li>
<li class="s">
<li class="s">
在您的情况下,仅使用类名是不够的。
By.cssSelector(".ban")
有15个匹配节点By.cssSelector(".hot")
有11个匹配节点By.cssSelector(".ban.hot")
有5个匹配节点因此,您需要更多限制来缩小范围。下面的 选项1和2 可用于CSS选择器,其中1可能是最适合您的需求的选择器。
选项1:使用列表项的索引(CssSelector或XPath)
局限性
例:
driver.FindElement(By.CssSelector("#rightbar > .menu > li:nth-of-type(3) > h5"));
driver.FindElement(By.XPath("//*[@id='rightbar']/ul/li[3]/h5"));
选项2:使用Selenium的FindElements
,然后对其进行索引。(CssSelector或XPath)
局限性
例:
// note that By.CssSelector(".ban.hot") and //*[contains(@class, 'ban hot')] are different, but doesn't matter in your case
IList<IWebElement> hotBanners = driver.FindElements(By.CssSelector(".ban.hot"));
IWebElement banUsStates = hotBanners[3];
选项3:使用文字(仅XPath)
局限性
例:
driver.FindElement(By.XPath("//h5[contains(@class, 'ban hot') and text() = 'us states']"));
选项4:索引分组的选择器(仅XPath)
局限性
例:
driver.FindElement(By.XPath("(//h5[contains(@class, 'ban hot')])[3]"));
选项5:通过href找到隐藏的列表项链接,然后遍历到h5(仅XPath)
局限性
例:
driver.FindElement(By.XPath(".//li[.//ul/li/a[contains(@href, 'geo.craigslist.org/iso/us/al')]]/h5"));
在获取元素以单击加号时,代码失败。下面是代码。 “collapser”是驻留在多个div和td下的div的类。我正在粘贴该组件的XPATH作为引用。但是XPATH并不总是相同的,而是不同的。我为元素找到了两个XPath。 XPATH:1/html/body/div[3]/div/ul/li2/div2/div[3]/div2/html/body/div[3]/div/ul/li2/div/div[
我面临的错误截图 上面的一行显示了错误,它表示。我在堆栈溢出上看到过这种问题,但解决方案对我没有帮助
问题内容: 我正在尝试选择一个包含锚点的元素,但文本被埋在div内的一个段落中。这是我正在使用的HTML: 我用来尝试捕获的代码针对的是“ Smoke Sequential”文本,其内容为: 变量“服务”中包含“烟雾顺序”的位置。运行它时,出现以下错误: 任何帮助将不胜感激。 问题答案: 问题可能出在html的其余部分,您没有发布的部分。 在此示例中(我刚刚关闭了打开的标签): 我可以轻松找到该元
问题内容: 我有以下XPath: 当我在XPath Checker(Firefox扩展)中试用此XPath时,它一直都能完美运行。但是当我在Selenium中执行以下操作时: 它不断给我以下日志错误: 我为解决这个问题而疯狂。有人看到我的代码行有任何错误吗? 问题答案: 该查询字符串不应该像这样(根据javadoc api)吗?
问题内容: 我正在尝试查找具有动态生成ID的元素。字符串的最后一部分是常量(“ ReportViewer_fixedTable”),因此我可以使用它来定位元素。我试图在XPath中使用正则表达式: 并通过CssSelector定位: 都不行。任何建议,将不胜感激。 问题答案: 那是因为需要修改css选择器,而您几乎就在那里… 从https://saucelabs.com/blog/selenium
我有这一页: 我想按节群链接: 下面是y在以下内容中找到的解释:http://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webelement.webelement.find_element_by_xpath