我有一些使用Selenium的java代码。在静态{}内,我设置了DOWNLOAD_DIR。其余的工作稍后完成。
public static final String DOWNLOAD_DIR = System.getProperty("java.io.tmpdir");
...
...
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
prefs.put("download.default_directory", downloadDir);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
ChromeDriver newDriver = new ChromeDriver(options);
当我手动运行Selenium时,这种方法很好,但是当它在晚上用竹子运行时它会得到这个消息 驱动程序可执行文件不存在:/ opt / app / bamboo / bamboo-home / xml-data / build-dir / TEST-PRVPTLWC-JOB1 / Packager / C:\ eclipse \ selenium-drivers \ chromedriver .EXE
Chrome已在运行。我正在创建一个新的驱动程序来做一些副作用。不知道为什么我会收到该错误,但我认为我可以指定从堆栈溢出中集成以下内容的确切二进制文件:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
capabilities.setCapability("chrome.binary", "<Path to binary>");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new ChromeDriver(capabilities);
我认为这会奏效,但我不知道该怎么做。请记住,这将在两台不同的机器上运行,一台Windows和另一台Unix变体(竹子),所以我无法对路径进行硬编码。我希望能够找到我正在运行的二进制文件的路径。我可以通过getDriver()访问驱动程序但是当我查看所有方法时,我没有看到任何显示二进制位置的内容。有一个功能选项,但我查看了当前驱动程序的功能,也没有指定二进制路径。
知道如何获取二进制文件吗?其他人设置了testng环境,所以不确定我是否可以访问它。
由于
p.s。,我桌面的平台是Windows 7.我使用Java和Eclipse和Selenium。我认为Bamboo是unix / linux的一种形式。
答案 0 :(得分:0)
我们需要设置chromdriver的位置以启动chrome浏览器。
您可以通过系统属性传递chromedriver的位置
System.setProperty("webdriver.chrome.driver","/path/to/chromedriver.exe");
您可以传递与命令行参数相同的属性
java -Dwebdriver.chrome.driver=/path/to/chromedriver.exe MyClass