gpt4 book ai didi

java - 在 Java 中使用 Selenium 单击动态下拉 div

转载 作者:行者123 更新时间:2023-12-02 01:25:57 25 4
gpt4 key购买 nike

我在从动态生成的下拉列表中指定第一个元素的 xpath 时遇到问题。我希望 Selenium 单击 this webpage 下拉列表中的第一个建议输入一些文字后。但是,我想要定位它的方式会导致 NoSuchElementException。我的代码:

public static void printTickets() throws IOException {
System.setProperty("webdriver.chrome.driver", CHROMEDRIVER_PATH);
WebDriver driver = new ChromeDriver();
driver.get("https://bilkom.pl/");

// hide iframe
WebElement closeFrameButton = driver.findElement(By.xpath("//div[@class='modal-body']//button[@class='close']"));
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(closeFrameButton));
closeFrameButton.click();

// fill first field
WebElement textInput = driver.findElement(By.xpath("//input[@id='fromStation']"));
textInput.sendKeys("Warszawa");
String firstElementXPath = "//div[@id='fromStation-cg']//div[@class='tt-dataset']//div[1]";
WebElement firstElementDiv = driver.findElement(By.xpath(firstElementXPath)); //NoSuchElementException
firstElementDiv.click();
}

最佳答案

尝试使用下面的 xpath 从动态列表中选择第一项。

(//div[@id='fromStation-cg']//div[@class='tt-station tt-suggestion tt-selectable']//span)[1]

检查了下面的代码是否按预期工作。

// fill first field
WebElement textInput = driver.findElement(By.xpath("//input[@id='fromStation']"));
textInput.sendKeys("Warszawa");
Thread.sleep(5000);
String firstElementXPath = "(//div[@id='fromStation-cg']//div[@class='tt-station tt-suggestion tt-selectable']//span)[1]";
WebElement firstElementDiv = driver.findElement(By.xpath(firstElementXPath)); //NoSuchElementException
wait.until(ExpectedConditions.elementToBeClickable(firstElementDiv));
System.out.println(firstElementDiv.getText());
firstElementDiv.click();

关于java - 在 Java 中使用 Selenium 单击动态下拉 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56926241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com