如何为<li> HTML元素获取正确的Xpath?

时间:2019-04-23 10:24:16

标签: java html selenium xpath css-selectors

i应该使Selenium使用JavaInteliji单击下拉菜单的元素。我应该点击“ today”按钮。我尝试复制xpath,使用cssselector,我使用了xpath finder等扩展名,但没有结果。元素是<li>类型,所以我想问题就在这里。关于如何找到正确的Xpath的任何建议? 附言很抱歉上传图片,作为新用户,我无法将其准确地放在文本中。 Drop down menu image html code for the elements

1 个答案:

答案 0 :(得分:0)

您不能总是从浏览器的工具中获得硒的可重用XPath定位器。它返回一个绝对的XPath。您需要为元素构造相对的XPath。

Here,您可以了解XPath以及XPath定位器的工作方式。

以下定位器基于您发布的图像。

XPath:

WebElement liToday = driver.findElement(By.xpath("//div[contains(@class,'daterangepicker') and contains(@class,'dropdown-menu')]/div[@class='ranges']/ul/li[text()='Today']"));

CSS选择器:

WebElement liToday = driver.findElement(By.cssSelector("div.daterangepicker.dropdown-menu > div.ranges > ul > li"));

找到元素后,
这部分是用于您单击日期框并显示下拉列表的。

new WebDriverWait(driver,30).until(ExpectedConditions.visibilityOf(liToday));
liToday.click();