去這里吧。嘗試找到復選框按鈕 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();

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
您可以使用 xpath 找到書籍的復選框。
//div[@id='widgetFilters']//span[text()='Department']/parent::div/following-sibling::div//span[contains(text(), 'Book')]/parent::label/input[@type='checkbox']

慕慕森
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();
- 3 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消