我有檢票口應用程式,我想設定一個選擇值。問題是 chrome 驅動程式回傳錯誤與 RESPONSE FindElement ERROR
no such element: Unable to locate element: {"method":"css selector","selector":"#id104"}
(Session info: chrome=94.0.4606.81)

這是我的硒 java 代碼:
System.setProperty("webdriver.chrome.driver", pathToDriver);
System.setProperty("webdriver.chrome.logfile", "C:\\app\\chromedriver.log");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setBinary("C:\\app\\GoogleChromePortable64\\App\\Chrome-bin\\chrome.exe");
WebDriver driver=new ChromeDriver(chromeOptions);
driver.navigate().to(url);
System.out.println(driver.getCurrentUrl());
WebElement userTextField = driver.findElement(By.id("username"));
userTextField.sendKeys(username);
WebElement passwordTextField = driver.findElement(By.id("password"));
passwordTextField.sendKeys(password);
WebElement okButton =driver. findElement(By.id("OKButton"));
okButton.click();
WebElement crdbTab =driver. findElement(By.linkText("CRDB"));
crdbTab.click();
(new WebDriverWait(driver, 5)).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("iframe_app4"));
WebElement uploadTab = driver.findElement(By.linkText("Upload"));
uploadTab.click();
System.out.println(driver.getCurrentUrl());
WebElement fileUploadButton = driver.findElement(By.id("id5f"));
fileUploadButton.sendKeys(filePath);
driver.findElement(By.id("idb")).click();
driver.findElement(By.className("main")).click();
Select headerDataSelect = new Select(driver.findElement(By.id("id104")));
headerDataSelect.selectByIndex(0);
代碼失敗
Select headerDataSelect = new Select(driver.findElement(By.id("id104")));
有人可以就如何解決這個問題提出意見嗎?
感謝幫助
uj5u.com熱心網友回復:
嘗試在那里添加等待以在訪問元素之前加載元素。
代替
Select headerDataSelect = new Select(driver.findElement(By.id("id110")));
嘗試
wait = new WebDriverWait(driver, 30);
Select headerDataSelect = new Select(wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("id110"))));
還要確保這里的 id 值id110是唯一的并且不是動態的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/433005.html
