我有一个自动化的python脚本来检查DOM中的任何更改。我有一个有效的xpath:
//td[@class='high-bg']/a[@class='link-action'][@data-hintbox='1'][@data-hintbox-static='1'][@role='button'][@href='javascript:void(0)']
但是它给了我比我需要的更多的输出,其中一些会导致错误。所以我想从xpath中获取我需要的抽象项目,所以我尝试使用这样的东西:
//table[@id't5c711109b1eea263276674']/tbody[]/tr[]/td[@class='warning-bg']/a[@class='link-action'][@data-hintbox='1'][@data-hintbox-static='1'][@role='button'][@href='javascript:void(0)']
但它不起作用,所以甚至可以用这么多标记搜索xpath吗?
<table id="example">
<tbody>
<tr>
<td class="average-bg">
<a class="link-action" data-hintbox="1" data-hintbox-static="1" role="button" href="javascript:void(0)">1</a>
</td>
</tr>
</tbody>
</table>
它在这里。
XML
<root>
<e1 role='a' class='y'></e1>
<e1 role='a' class='t'></e1>
<e1 role='a' class='z'></e1>
</root>
XAPTH
//e1[@role='a' and @class='t']
输出
Element='<e1 class="t" role="a"/>'
关于您的代码试验:
>
在第一次尝试中,您尝试使用元素的所有属性来构造xpath:
//td[@class='high-bg']/a[@class='link-action'][@data-hintbox='1'][@data-hintbox-static='1'][@role='button'][@href='javascript:void(0)']
具有相似属性的元素可以存在,但在不同的位置/位置。因此,它返回的输出比您需要的要多。
在您的第二次尝试中,您构建了一个脆弱的绝对xpath:
//table[@id't5c711109b1eea263276674']/tbody[]/tr[]/td[@class='warning-bg']/a[@class='link-action'][@data-hintbox='1'][@data-hintbox-static='1'][@role='button'][@href='javascript:void(0)']
根据您提供的基于文本的HTML,要识别所需的元素,可以使用以下任一解决方案:
>
xpath
:
driver.find_element_by_xpath("//table[@id='example']//td[@class='average-bg']/a[@class='link-action' and text()='1']")
css_selector代码:
driver.find_element_by_css_selector("table#example td.average-bg>a.link-action")
问题内容: 希望这是一个非常简单的问题。我有一个makefile模式规则,如下所示: 我希望makefile生成许多.so文件,因此我尝试通过执行以下操作来使其生成两个文件(radgrd_py.so和lodiso_py.so): 然后尝试这个: 但是在每种情况下,它只会构建我指定的第一个目标。如果我运行’make radgrd_py.so’可以正常工作,我只是不确定如何指定需要构建的文件列表,这样
问题内容: 我目前正在开发一个Ionic Framework(AngularJS)项目,该项目使用地理位置和Google Maps显示用户的位置。 我正在尝试向用户显示地理位置以及该区域周围的多个标记。 我的地理位置已正常运行,但似乎无法添加多个标记。 地点 控制器 问题答案:
我想在每个文本之后使用jsoup提取一个文本。有没有办法选择它? 示例代码如下: 当它完成时,它会创建自动id示例id=123
我想添加多个点击激活的标记和信息。我有麻烦,以显示相关的信息标记,点击后,相同的信息标记为所有标记打开。 信息来自for循环这是代码
问题内容: 我已经通过import语句从Objective C(针对目标“ MyApp”)成功调用了我的Swift类: 我现在创建了一个名为“ MyAppLite”的新目标 编译新目标时,出现错误,因为代码需要“ MyApp-Swift.h”,但是编译器正在创建“ MyAppLite-Swift.h” 因此,我需要为要编译的目标创建条件Swift / ObjC标头。 怎么做,还是有更好的办法? 问