在以下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 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
按样式选择也不起作用,因为页面上有多个元素具有相同的格式。
我试图在很长一段时间内找到答案。通过文本定位元素的正确方法是什么?
答案 0 :(得分:1)
通过XPath找到元素:
driver.findElement(By.xpath("//div[. = 'SELECT PRODUCT']"));
或者,作为解决
inside the text:
driver.findElement(By.xpath("//div[starts-with(., 'SELECT') and contains(., 'PRODUCT')]"));