如何为以下HTML代码构建定位器?

问题描述 投票:0回答:2

我正在学习xpath哲学。在某种程度上,发现的大多数示例都是标准的,手动查找xpath可能很容易。在下面的HTML代码中,我无法理解如何找到作业持续时间的xpath,然后为li项创建元素列表。

<div class="box rounded6">
   <h3 class="s_filter_title">Job Duration :</h3>
   <ul>
      <li><label><input type="checkbox" class="" name="">Contract</label></li>
      <li><label><input type="checkbox" class="" name="">Full Time </label></li>
      <li><label><input type="checkbox" class="" name="">Part Time </label></li>
      <li><label><input type="checkbox" class="" name="">Internship</label></li>
      <li><label><input type="checkbox" class="" name="">Temporary</label></li>
      <li><label><input type="checkbox" class="" name="">Temp To Perm</label></li>
   </ul>
</div>
list selenium-webdriver xpath webdriver xpath-1.0
2个回答
3
投票

这是您要查找的xpath。

//h3[.='Job Duration :']/following-sibling::ul/li//input

英国有6个li元素,您可以在搜索列表中看到计数为6。

enter image description here


-1
投票

要创建与元素关联的<li>元素的列表,其中文本为作业持续时间,您需要首先将文本标识为作业持续时间,然后找到以下<ul>节点,然后找到它的子节点,您可以使用以下Locator Strategy

  • Java解决方案: xpath1: List<WebElement> myElements = driver.findElements(By.xpath("//h3[text()='Job Duration :']//following::ul[1]//li")); xpath2: List<WebElement> myElements = driver.findElements(By.xpath("//h3[contains(., 'Job Duration')]//following::ul[1]//li"));
  • Python解决方案: xpath1: my_elements = driver.find_elements_by_xpath("//h3[text()='Job Duration :']//following::ul[1]//li") xpath2: my_elements = driver.find_elements_by_xpath("//h3[[contains(., 'Job Duration')]//following::ul[1]//li")
© www.soinside.com 2019 - 2024. All rights reserved.