Exception in thread "main" java.lang.IllegalStateException: The driver executable must exist: C:\chromedriver.exe
at org.openqa.selenium.internal.Require$FileStateChecker.isFile(Require.java:315)
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:144)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:139)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:38)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:231)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:434)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:127)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:46)
at base.main(base.java:35)
嗨,伙計們正在嘗試做一些練習,但總是會出現這個錯誤,如果你們能幫助我理解錯誤,這將非常有幫助。我嘗試設定 selenium 驅動程式路徑,但錯誤仍然沒有消失。代碼在底部。提前謝謝你
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class base {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe");
WebDriver driver=new ChromeDriver();
//driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
WebDriverWait w =new WebDriverWait(driver,5);
String[] itemsNeeded= {"Cucumber","Brocolli","Beetroot"};
driver.get("https://rahulshettyacademy.com/seleniumPractise/");
Thread.sleep(3000);
addItems(driver,itemsNeeded);
driver.findElement(By.cssSelector("img[alt='Cart']")).click();
driver.findElement(By.xpath("//button[contains(text(),'PROCEED TO CHECKOUT')]")).click();
w.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input.promoCode")));
driver.findElement(By.cssSelector("input.promoCode")).sendKeys("rahulshettyacademy");
driver.findElement(By.cssSelector("button.promoBtn")).click();
//explicit wait
w.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span.promoInfo")));
System.out.println(driver.findElement(By.cssSelector("span.promoInfo")).getText());
}
public static void addItems(WebDriver driver,String[] itemsNeeded)
{
int j=0;
List<WebElement> products=driver.findElements(By.cssSelector("h4.product-name"));
for(int i=0;i<products.size();i )
{
//Brocolli - 1 Kg
//Brocolli, 1 kg
String[] name=products.get(i).getText().split("-");
String formattedName=name[0].trim();
//format it to get actual vegetable name
//convert array into array list for easy search
// check whether name you extracted is present in arrayList or not-
List itemsNeededList = Arrays.asList(itemsNeeded);
if(itemsNeededList.contains(formattedName))
{
j ;
//click on Add to cart
driver.findElements(By.xpath("//div[@class='product-action']/button")).get(i).click();
if(j==itemsNeeded.length)
{
break;
}
}
}
}
}
uj5u.com熱心網友回復:
System.setProperty("webdriver.chrome.driver", "C://chromedriver.exe");
定義 chrome 驅動程式二進制檔案位于C:\chromedriver.exe. 但例外說該檔案不存在那里。
因此,只需從https://chromedriver.chromium.org/downloads下載 chrome 驅動程式并將其移動 重命名為即可 C:\chromedriver.exe。
uj5u.com熱心網友回復:
此錯誤訊息...
Exception in thread "main" java.lang.IllegalStateException: The driver executable must exist: C:\chromedriver.exe
...表示程式無法在指定位置找到ChromeDriver可執行檔案。
解決方案
您需要注意以下幾點:
確保您已從與您的底層作業系統相關的下載位置下載了正確格式的ChromeDriver二進制檔案,其中包括:
- chromedriver_win32:適用于Windows 作業系統
- chromedriver_mac64 : 適用于MAC OS X
- chromedriver_linux64:適用于Linux 作業系統
不要將ChromeDriver可執行檔案存盤在
C:\驅動器中,而是將其保存在目錄中,例如C:\BrowserDrivers\. 因此,您的代碼行將是:System.setProperty("webdriver.chrome.driver", "C://BrowserDrivers//chromedriver.exe");確保ChromeDriver二進制檔案對非管理員 用戶具有可執行權限。
以非管理員 用戶身份執行您的測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418206.html
標籤:
