Selenium:使用xpath按文本查找Web元素

时间:2017-07-03 03:05:31

标签: java selenium xpath

我需要通过文字找到一个web元素。我有这个xpath:

$.jqplot(...

我需要找到的文字是" next"这是李的内心。 我尝试这样的事情

"/html/body/div/div[3]/div/table[2]/tbody/tr/td/table/tbody/tr[5]/td/div/div[2]/div[1]/table/tbody/tr/td/table/tbody/tr[5]/td/div/div[1]/div/ul/li"

但它不起作用。这就是html的样子:

WebElement xnext = driver.findElement(By.xpath("//div[contains(text(),'next')]"));

2 个答案:

答案 0 :(得分:0)

xpath存在两个问题。

首先,它是包含文本的li元素。 其次,文本区分大小写。

试试这个xpath:

$.each(playlist, function(index, val) {
    playlistHtml += "<form name="form" method="post" action="../_inc/process_track_move.php?track="+val.sources[0].title"
});

可以帮助您使用xpath的一个工具是Firefox的Firebug和FirePath插件。 Firebug将允许您检查元素和firepath可以显示xpath。 xpath可能不是您正在寻找的,但至少您可以使用插件来测试您的xpath。

答案 1 :(得分:0)

试试下面提到的xpath。
注意:在执行此xpath之前,请等待几秒钟,以便您的驱动程序可以找到web元素。

//div[@class='z-paging z-paging-os']//li[contains(text(), 'Next')]
  

OR

使用xpathindexing number下面尝试此操作。

indexing结束后尝试使用xpath。在上面的html Next您的<li>关键字位于xpath标记内的第四个位置,请使用下面提到的//div[@class='z-paging z-paging-os']//li[4]

Last

仅供参考:如果您想在<li>标记内找到last关键字,只需更改索引编号即可。您的html关键字位于xpath内的第五个位置,因此last关键字位于//div[@class='z-paging z-paging-os']//li[5] 关键字,如下所示。

point(inside:with:)