Xpath 是否可以在硒中结合使用以下和之前?
在这一页上 我有: 但它只记录了以下内容 默认的firepath选择器是:Xpath 是否可以在硒中结合使用以下和之前?,xpath,selenium-webdriver,Xpath,Selenium Webdriver,在这一页上 我有: 但它只记录了以下内容 默认的firepath选择器是://*[@id='mw-content-text']/div/table[5]/tbody/tr/td[1]/I,但已知这种选择器经常中断。只是想知道是否有更好的方法,我想这可能是一种方法 谢谢! :) -您可以看到它在表下得到的东西不是我想要的:s尝试使用下面的XPath来匹配所需的元素: //th[contains(@id, 'ep')]/following::I[./following::*[text()='Rece
//*[@id='mw-content-text']/div/table[5]/tbody/tr/td[1]/I
,但已知这种选择器经常中断。只是想知道是否有更好的方法,我想这可能是一种方法
谢谢!
:)
-您可以看到它在表下得到的东西不是我想要的:s尝试使用下面的
XPath
来匹配所需的元素:
//th[contains(@id, 'ep')]/following::I[./following::*[text()='Reception']]
这看起来更简单
//tr[contains(@class, 'vevent')]//i
不要把事情过分复杂化。您需要在每行中添加I
标记。所以只需找到行定位器tr[contains(@class,'vevent')]
并获取它的I
另一种很好的方法是,如果您想检查父元素的内部是否有某个特殊元素,但您想查找第三个元素,则使用以下样式://元素[./specific]//子元素
,因此在您的情况下:
//tr[contains(@class, 'vevent')][./th[contains(@id,'ep')]]//i
所以这是行中的
I
标记,它包含@id,'ep'
在标题中您想要的输出是什么?您想同时获得两个元素吗?您的确切手动步骤是什么?您试图查找HTML DOM中的哪个元素/单击()
/getText()
?Thanks@Andersson我不知道你在问什么对不起:S。我想得到你能在图片中看到的表格中所有突出显示的元素。因此,在接收文本之前和ep之后number@DebanjanB看看上面写的数字5,然后你可以在firepath中看到突出显示的标签。我想让Firepath把所有的东西都放在桌子上,而不是桌子外面的任何东西。我希望这是有意义的:)@DebanjanB get text()哦,太棒了!正是我想要的。我将研究它,以便将来可以复制它。有没有关于掌握xpath的好书/指南?谢谢你!!:)@DebanjanB如果你愿意,你仍然可以包括你要放的东西。虽然您不会获得奖励积分,但很抱歉:S@DebanjanB那么这是导师和学员的共同努力?谢谢:)谢谢分享:)。我肯定也会用这个方法。谢谢^。^。现在我对提取这个页面更有信心了。酷)重点是-始终关注包装器元素,因为它们通常具有良好的结构和一些良好的类/属性。和内部元素-只是span/div/etc,没有任何适当的指示器。这就是为什么与复杂/跟随/精确定位器相比,当您从父元素移动到某个子元素时,定位器变得更加简单和可读
//tr[contains(@class, 'vevent')][./th[contains(@id,'ep')]]//i