亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

getText() 方法不打印所有下拉值

getText() 方法不打印所有下拉值

慕村225694 2023-07-28 16:52:54
它不會打印下拉列表中的所有值。它正在將值打印到我要單擊的元素,并將其余值打印為空白。driver.get("https://some-url.com");driver.findElement(By.xpath("//*[@id='example']/div[4]/div/div[2]/div[4]/div[1]/div[6]/div/input[2]")).click();List<WebElement> allOptions = driver.findElements(By.xpath("//div[@class='menu transition visible']/div"));for (int i = 0; i < allOptions.size(); i++) {    System.out.println(allOptions.get(i).getText());    if (allOptions.get(i).getText().equalsIgnoreCase("Angola")) {        allOptions.get(i).click();        }    }我希望我的代碼打印下拉列表中的所有值,但實際上它打印的是我要單擊的元素的值。
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

您正在看到預期的行為。如果您的用例是打印所有值,然后在文本為Angolaclick()的元素上打印,您可以使用以下定位器策略:

driver.get("https://some-url.com");

driver.findElement(By.xpath("http://*[@id='example']/div[4]/div/div[2]/div[4]/div[1]/div[6]/div/input[2]")).click();

System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("http://div[@class='menu transition visible']/div"))).stream().map(element->element.getAttribute("innerHTML")).collect(Collectors.toList()););

List<WebElement> allOptions = driver.findElements(By.xpath("http://div[@class='menu transition visible']/div"));

for (int i = 0; i < allOptions.size(); i++) {

? ? if (allOptions.get(i).getText().equalsIgnoreCase("Angola")) {

? ? ? ? allOptions.get(i).click();

? ? ? ? break;

? ? }

}


查看完整回答
反對 回復 2023-07-28
  • 1 回答
  • 0 關注
  • 151 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號