为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BIG阳 2023-10-04 15:47:16
去这里吧。尝试找到复选框按钮 Books with Inspector单击要选择的复选框按钮我尝试迭代并找到唯一标识符“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");    }
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

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

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


查看完整回答
反对 回复 2023-10-04
?
侃侃无极

TA贡献2051条经验 获得超10个赞

您可以使用 xpath 找到书籍的复选框。

//div[@id='widgetFilters']//span[text()='Department']/parent::div/following-sibling::div//span[contains(text(), 'Book')]/parent::label/input[@type='checkbox']



查看完整回答
反对 回复 2023-10-04
?
慕慕森

TA贡献1856条经验 获得超17个赞

您可以使用 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();


查看完整回答
反对 回复 2023-10-04
  • 3 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信