如何在eBay上为web元素编写XPath?

时间:2016-10-05 01:08:25

标签: xpath selenium-webdriver

我正在尝试为eBay网站上的“电子”链接编写XPath,但似乎有两个链接具有完全相同的标签和属性:

tasklist /v /nh /fi "WINDOWTITLE eq test.bat - Notepad" |findstr /B /C:"INFO: No tasks are running">nul && (echo Program not running) || (echo Awesome)

我正在使用这个XPath:

<a class="rt" _sp="p2057337.m1381.l3250" href="http://www.ebay.com/rpp/electronics">Electronics</a>

这条路径给了我2个节点,我不知道还有什么用。请参阅随附的Firebug屏幕截图,以供参考:

electronics link

electronics link

3 个答案:

答案 0 :(得分:0)

您可以直接使用By.linkText()定位器,而不是使用xpath。

driver.findElements(By.linkText('Electronics')) //but this will also give you two elements.

如果要选择特定链接,则需要实现自定义xpath,如下所示。

第一个链接

driver.findElement(By.xpath(".//div[@id='navigatonFragment']/descendant::a[normalize-space(text())='Electronics']"));

第二个链接

driver.findElement(By.xpath(".//div[@class='topnavlayer']/descendant::a[normalize-space(text())='Electronics']"));

答案 1 :(得分:0)

这两个链接都可以使用:

链接1:

//div[@id='navigationFragment']/descendant::a[text()='Electronics']

链路2:

//td[@data-hover-tracking='p2057337.m1381.l6435']/a[contains(@href,'electronics')]

答案 2 :(得分:0)

我们可以这样给吗?

//li[@class='hl-cat-nav__js-tab']
//a[contains (@href,'Electronics') and @xpath='1']

可以使用此xpath突出显示电子设备链接。