我写了这样的代码,但是这段代码没有运行chromedriver,我已经添加了文件(chromedriver.exe)和这个路径(\chromedrive\chromedriver.exe)。
public class Browser {
private static WebDriver driver = new ChromeDriver();
public static WebDriver driver() {
return driver;
}
public static void open(String url) {
String path = System.getProperty("user.dir");
System.setProperty("webdriver.chrome.driver",path + "\\chromedrive\\chromedriver.exe");
driver.manage().window().maximize();
driver.get(url);
}
}
.
public class Page extends LoadableComponent<Page> {
static String url = "http://-------";
private static String title = "title";
public Page() {
PageFactory.initElements(Browser.driver(), this);
}
@Override
protected void load() {
// TODO Auto-generated method stub
Browser.open(url);
}
@Override
protected void isLoaded() throws Error {
// TODO Auto-generated method stub
assertTrue(Browser.driver().getTitle().equals(title));
}
}
.
public class PageTests {
@Test
public void pageTest() {
Page page = new Page();
page.get();
}
}
错误消息是:
JAVAlang.Exception初始化错误
原因:java。lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver设置。铬。驱动系统属性;
您应该在定义和设置路径的函数中实例化浏览器。
试试这个:
public static void open(String url) {
String path = System.getProperty("user.dir");
System.setProperty("webdriver.chrome.driver",path + "\\chromedrive\\chromedriver.exe");
driver.manage().window().maximize();
WebDriver driver = new ChromeDriver();
driver.get(url);
}
不需要单独创建驱动程序函数。请把它拿走。
当应用程序第一次加载时,它将尝试加载Browser类。
在加载类时,JVM将执行所有指定的静态初始化,在本例中,它将尝试创建一个ChromeDriver对象,因为您正在使用new ChromeDriver()
初始化静态字段。此时,尚未调用open
方法来设置系统属性,因此将引发异常,从而导致JVM退出。
要解决此问题,请创建ChromeDriver对象/after/设置系统属性(例如在open
方法中),或在启动JVM时设置系统属性:
java -Dwebdriver.chrome.driver=path/to/driver -jar somejar.jar
起初,我认为您正在创建Chromedriver,而没有对exe的引用。
所以,如果你把它变成这样,它可能会工作。
public class Browser {
private static WebDriver driver;
public static WebDriver driver() {
return driver;
}
public static void open(String url) {
String path = System.getProperty("user.dir");
System.setProperty("webdriver.chrome.driver",path + "\\chromedrive\\chromedriver.exe");
driver = new ChromeDriver(); //Initilize here
driver.manage().window().maximize();
driver.get(url);
}
}
系统环境: JVM 11.0.6-打开 Ubuntu 18.04 SDKMAN 5.8.1+484 等级6.1 Chrome版本81.0.4044.138 Chrome驱动程序3.141.59 要运行的代码: 下午4:52:09:正在执行任务“Runner.Main()”... 任务:CompileJava任务:ProcessResources无源任务:类 任务:runner.main()错误:未
我一直在尝试通过Launchctl安排我的一个python脚本,但遇到了一个错误。目的是它在每个小时的给定时间运行。 我已经创建了plist,并将其加载到Launchctl中,但它无法正常工作。在做了一些挖掘后,我调试并得到以下错误消息:Traceback(最近一次调用最后一次):文件/Library/框架/Python.framework/Versions/3.8/lib/python3.8/s
在我开始之前:我知道有10亿篇关于硒不起作用的帖子,还有各种各样的解决方案需要尝试。我相信我什么都试过了,但如果我错过了什么,请原谅。我的头撞到墙上了,非常感谢你的帮助。 以下是我采取的一些措施: 我下载了chromedriver for selenium(Ubuntu,Python),并使用和使驱动程序可执行。之后,我用。 我尝试了各种Selenium选项,包括手动添加chromedriver运
问题内容: 我正在使用量角器针对Angular应用程序运行测试。它们可以在我的OSX环境上工作,但不能在TeamCity试图运行它的Linux上工作。 当我在本地OSX环境上运行此命令时,它可以工作(也在我的同事计算机上进行了测试): 当我在Linux机器上运行此程序时,或者TeamCity作业尝试运行它时,它失败了: 尝试解决: 我已经看过这个问题,但是独立的webdriver服务器无法解决。
问题内容: 我将Selenium与Java(1.8)中的Chromedriver结合使用来进行一些自动的网络爬网: 我正在尝试迁移到Ubuntu 16.04服务器。在服务器上,我安装了Ubuntu chromedriver版本2.37,chrome版本65。根据chromedriver文档,这些版本兼容。我已经更改了指定chromedriver在Ubuntu中的位置的代码: 在运行程序之前,我先启
我正在尝试使用python 3从WSL2(Ubuntu18.04)中无头打开Chrome。 在Windows上,我使用的是Chrome84。我已经从ChromeDriver-WebDriver下载了Chrome Driver 84。并在C:\chromedriver\chromedriver.exe下安装了。exe 以下是我的剧本: 它失败并出现错误: 引发WebDriverException(“