猿问

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

  1. 这里吧

  2. 尝试找到复选框按钮 Books with Inspector

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

我尝试迭代并找到唯一标识符“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");

    }

BIG阳
浏览 102回答 3
3回答

蓝山帝景

您无需迭代即可实现,请使用以下值通过 xpath 定位元素://label[contains(., 'Books')]//input。WebElement&nbsp;element&nbsp;=&nbsp;driver.findElement(By.xpath("//label[contains(.,&nbsp;'Books')]//input")); element.click();

侃侃无极

您可以使用 xpath 找到书籍的复选框。//div[@id='widgetFilters']//span[text()='Department']/parent::div/following-sibling::div//span[contains(text(),&nbsp;'Book')]/parent::label/input[@type='checkbox']

慕慕森

您可以使用 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();
随时随地看视频慕课网APP

相关分类

Html5
我要回答