因此,我一直在尝试制作一个可以与网页交互以输入数据的程序。理想情况下,我想使用Chrome,因此尝试设置Selenium WebDriver和ChromeDriver。
import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class Chrome { public static void main(String[] args) { //Set chromedriver path System.setProperty("webdriver.chrome.driver","C:/Users/Username/Desktop/Comp Sci work/chromedriver.exe"); WebDriver driver = new ChromeDriver(); // Open Google driver.get("http://www.google.com"); // Maximize browser driver.manage().window().maximize(); } }
我似乎已经正确设置了外部JAR,因为我可以毫无问题地导入它们。问题是由于某种原因无法创建Chrome进程。我以为可能是因为已经打开了Chrome进程,但没有。终止进程时,我仍然遇到相同的错误。
然后,我尝试将重置路径设置为Chrome,因为默认路径可能与我的不同,但仍然没有运气。
public class Chrome { public static void main(String[] args) { //Set chromedriver path System.setProperty("webdriver.chrome.driver","C:/Users/Username/Desktop/Comp Sci work/chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.setBinary("C:\\Users\\Username\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"); WebDriver driver = new ChromeDriver(); // Open Google driver.get("http://www.google.com"); // Maximize browser driver.manage().window().maximize(); } }
错误消息是:
Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 43997 Only local connections are allowed. Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: Failed to create a Chrome process. (Driver info: chromedriver=2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e),platform=Windows NT 10.0.17134 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 199 milliseconds Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08- 02T20:05:20.749Z'
由于chromedriver似乎可以很好地启动,问题就在于创建chrome进程,但是我似乎找不到原因。任何帮助将不胜感激(有关我的帖子格式的提示,因为这是我的第一篇帖子)。谢谢
我今天遇到了这个问题,并最终解决了它。这是因为chrome以Administrator.Administrator运行,所以java无法启动它。
Google Chrome浏览器属性->兼容性->不以管理员身份运行