如何在不使用xpath或CSS路径的情况下从Amazon页面定位元素?

问题描述 投票:0回答:2
  1. 转到here

  2. 尝试找到复选框按钮“带检查器的书籍

  3. 单击要选中的复选框按钮

4。

我尝试迭代并找到唯一的标识符“ Books”。如果您知道另一种点击方法,那就无需重复。我使用了以下代码行:

List<WebElement> elements = new ArrayList<WebElement>(obj.findElements(By.cssSelector("span.a-label.a-checkbox-label")));
    for (WebElement element : elements) {
        if (element.getText() == "Books"){
            System.out.println("");
            element.click();
        }
else
            System.out.println("Condtition from if is not true");
    }
java html selenium automation css-selectors
2个回答
0
投票

您可以不进行迭代而实现,请通过xpath使用以下值来定位元素://label[contains(., 'Books')]//input

WebElement element = driver.findElement(By.xpath("//label[contains(., 'Books')]//input"));
element.click();

0
投票

您可以通过在xpath中使用其文本直接找到该元素。您可以像这样:

WebElement element = driver.findElement(By.xpath("//div[@id='widgetFilters']//span[@class='a-declarative']//span[contains(text(),'Books')]"));
element.click();

如果您要对xpath进行参数化并想使用字符串来获取它,则可以像这样:

String filterName = "Books";
WebElement element = driver.findElement(By.xpath("//div[@id='widgetFilters']//span[@class='a-declarative']//span[contains(text(),'"+filterName+"')]"));
element.click();
© www.soinside.com 2019 - 2024. All rights reserved.