无法识别自定义复选框元素/需要相对xpath

时间:2017-09-04 08:37:36

标签: selenium testing xpath selenium-webdriver automation

我需要span元素的相对xpath

<span class="icon"></span>

在selenium web driver中。

<span class="custom-checkbox">
           <input id="personalization1" name="personalization-terms-check" class="personalization-terms-check required" value="accept" type="checkbox">
           <label for="personalization1">
               <span class="icon"></span>
               <span class="order-ready-text">yes! I double-checked all personalization entered above and i'm ready to order</span>
           </label>
</span>

需要span元素的相对xpath

<span class="icon">

在上面的html中我得到了相对路径:
//*[@id="main"]/div[3]/div[4]/div[2]/div/span/label/span[1].

请帮助我获取相对xpath或其他方式来点击范围

注:

<span class="icon">

它可以是多个,所以我需要唯一的相对xpath。

4 个答案:

答案 0 :(得分:0)

尝试使用此xpath单击复选框:

.//input[@id='personalization1']

或者您可以使用此xpath

.//span[contains(text(),'yes! I dou')]

答案 1 :(得分:0)

您可以在执行以下任何操作之前等待元素可见性。

WebElement element=driver.findElement(By.xpath("//*[@name='personalization-terms-check']/following-sibling::label/span"));

WebDriverWait wait = new WebDriverWait(driver, 60);
wait.until(ExpectedConditions.visibilityOf(element));

element.click();

您可以使用不同的xpath或id来定位元素。如果页面上只有一个个性化术语复选框,则上述xpath映射是唯一的。

答案 2 :(得分:0)

你可以试试这个xpath吗?

"//label[@for='personalization1']/span[1]"

希望这会有所帮助。感谢。

答案 3 :(得分:0)

试试这个:

试试这个XPath -

//input[@id='personalization1']/label/span