我想用chrome自动化一些操作,我使用的是Selenium和chromedriver,但在执行时我遇到了这个错误
Exception in thread "main" java.lang.AbstractMethodError: org.openqa.selenium.remote.service.DriverService$Builder.createArgs()Lcom/google/common/collect/ImmutableList;
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:332)
at org.openqa.selenium.firefox.GeckoDriverService.createDefaultService(GeckoDriverService.java:94)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:114)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:94)
at App.main(App.java:12)
我看到我需要用系统放置驱动程序的路径。setProperty,但我已经做了
这是我的代码:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class App {
public static void main(String[] args) throws Exception {
System.out.println("Hello, World!");
System.setProperty("webdriver.chrome.driver","C:\\laragon\\www\\seleniumIndeed\\src\\drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com");
driver.quit();
}
}
Did i miss something?
这是java。当我们试图调用抽象方法时,通常会抛出lang.AbstractMethodError。
我们知道不能调用抽象方法,如果我们尝试这样做,那么您将收到编译时错误。所以您可能会想这个错误是如何在运行时抛出的?。
原因是二进制不兼容这意味着什么?
每当一个类被修改时,引用这个(修改后的)类的其他类将不会知道它所做的更改。所以所有的类都必须作为一个整体编译。如果没有,那么您可能会遇到不兼容的类更改错误的子类之一。
解决
>
检查System.setProperty
路径是否正确例如,在System.setProperty()
中提到Key
和Value
时,您必须转义反斜杠(\\
). // 这在您的情况下似乎没问题。
检查所需的selenium文件是否添加到项目的构建路径中
我为chromedriver设置了哪些选项,以使web服务器无法告知浏览器是手动启动的或使用Selenium编程启动的? 谢谢,
问题内容: 尝试使用python在chromedriver中启用Adobe Flash Player。我经历了许多尝试,包括: 以及我从Google顶级搜索结果中发现的有关此问题的其他几种变体。 问题答案: 最终使用以下代码解决了这个问题:
问题内容: 我想尝试无头镀铬,但是遇到了这个问题,我无法以无头模式启动驱动程序。我正在关注google文档。我错过了什么吗?该代码执行陷在线路 这是我的代码: 问题答案: UPDATE Chrome版本60已经发布,因此您所需要做的就是通过Nuget下载Chromdriver和Selenium并使用此简单代码,一切都像个魅力。惊人。 日期 在正式发布Chrome 60之前,有一个解决方案。您可以下
问题内容: 我需要使用Selenium测试JS地理定位功能,并且正在使用chromedriver在最新的Chrome上运行测试。 现在的问题是,Chrome浏览器提示我在测试过程中启用Geolocation,而且我不知道如何在运行时单击该小条,因此我急切地寻找一种方法来通过某些选项或触发器启动chromedriver和chrome默认情况下启用此功能。我在这里只能找到如何完全禁用地理位置。 我该如
问题内容: 我无法开始用。 它永远不会 失败,但会失败: 我正在使用( virtualenv installation)和(64b)。 编辑 降级为: 但是,可悲的是,结果仍然相同。 知道为什么会这样吗? 问题答案: 好的,所以解决方案 有点奇怪 。 我将二进制文件从(已安装的位置)移动到,更新了符号链接,它现在可以正常工作! 与问题本身相比,以下两行代码可以解决问题: 现在,我可以运行以下Pyt
问题内容: 我开始使用seleniumselenium(selenium包装API),必须说它是一个很棒的工具,但是我唯一的问题是它缺少在线文档或用法示例。 任何想法如何在google- Chrome中运行以selenide编码的应用程序。我正在使用eclipse作为IDE。我在运行配置中添加了带有值chrome的环境变量“浏览器”,但是在运行时,它将使用Firefox。 我的堆栈是JDBC Ja