使用文字

时间:2015-10-26 17:44:41

标签: java html css selenium xpath

在以下HTML中,我需要能够使用位于其中的文本选择元素," SELECT PRODUCT"。

<div style="font-family: franklin-gothic-urw; font-weight: 400; font-style: normal; font-size: 19px; opacity: 1; color: rgb(255, 255, 255);">SELECT&nbsp;PRODUCT</div>

所有资源都引导我这样:

driver.findElement(By.cssSelector("div[textContent='SELECT PRODUCT'])

哪个不起作用。我已经尝试了各种其他xpath和cssSelector,我似乎无法找到它来找到元素。

通过它定位元素的绝对路径是有效的,但它很脆弱,我们不想这样找到它:

html/body/div[3]/div[1]/div/div[3]/div/div/div/div/div[1]/div/div/div/div/div[2]/div[2]/div/div/div/div/div[2]/div

按样式选择也不起作用,因为页面上有多个元素具有相同的格式。

我试图在很长一段时间内找到答案。通过文本定位元素的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

通过XPath找到元素:

driver.findElement(By.xpath("//div[. = 'SELECT PRODUCT']"));

或者,作为解决&nbsp; inside the text

的解决方法
driver.findElement(By.xpath("//div[starts-with(., 'SELECT') and contains(., 'PRODUCT')]"));