Geckodriverを使用してSeleniumからFirefoxを駆動できません。 chromeはエラーなしで同じフレームワークで駆動されるため、これは奇妙です!
これらは私のバージョン番号です:
Firefox 54.0 (64-bit)
Chrome Version 62.0.3202.94 (Official Build) (64-bit)
Selenium-server-standalone-3.7.1.jar
client-combined-3.5.3-nodeps.jar
geckodriver-v0.19.1-linux64
chromedriver_linux64
Ubuntu 16.10
JavaでSeleniumwebdriverから取得するエラーは次のとおりです。
--------------------------------Error:
leder@leder-VirtualBox:~/Source/SeleniumCheese/bin$ ./execute_grid.sh
Exception in thread "main" org.openqa.Selenium.SessionNotCreatedException: Unable to create new service: GeckoDriverService
Build info: version: '3.7.1', revision: '8a0099a', time: '2017-11-06T21:07:36.161Z'
System info: Host: 'leder-VirtualBox', ip: '127.0.1.1', os.name: 'Linux', os.Arch: 'AMD64', os.version: '4.8.0-59-generic', Java.version: '1.8.0_131'
Driver info: driver.version: unknown
Command duration or timeout: 1.39 seconds
---------------------------------Schnapp
これは私のセットアップで、Firefoxが壊れていて、chrome OK:
Grid_SetUp.Java
package de.auticon.Selenium_server;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.By;
import org.openqa.Selenium.WebElement;
import org.openqa.Selenium.remote.DesiredCapabilities;
import org.openqa.Selenium.remote.RemoteWebDriver;
import Java.net.MalformedURLException;
import Java.net.URL;
public class Grid_SetUp {
public static WebDriver driver;
public static void main(String[] args) throws MalformedURLException, InterruptedException{
System.setProperty("webdriver.chrome.driver","/opt/Selenium/chromedriver");
String URL = "http://www.google.de";
String Node = "http://192.168.40.40:4444/wd/hub";
DesiredCapabilities cap = DesiredCapabilities.firefox();
driver = new RemoteWebDriver(new URL(Node), cap);
driver.navigate().to(URL);
WebElement element = driver.findElement(By.name("q"));
//Enter something to search for
element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
Thread.sleep(5000);
driver.quit();
}
}
Selenium_grid.sh:
#!/bin/bash
Java -jar /opt/Selenium/selenium-server-standalone-3.7.1.jar -role hub &
Java -Dwebdriver.gecko.driver=/opt/Selenium/geckodriver -jar /opt/Selenium/selenium-server-standalone-3.7.1.jar -role webdriver -hub http://192.168.40.40:4444/grid/register -nodeConfig /opt/Selenium/defaultNodeConfig.json -browser "browserName=firefox,platform=LINUX" &
execute_grid.sh:
#!/bin/bash
Java -cp ".:/opt/Selenium/selenium-server-standalone-3.7.1.jar" de.auticon.Selenium_server.Grid_SetUp
作業構成の質問を更新しました。しかし、Firefox Selenium TCを実行すると、TCが完了しますが、残念ながら、サーバーは「セッションが作成されていません」というエラーメッセージで終了します。
13:49:10.376 INFO - Removing session org.openqa.Selenium.remote.server.ServicedSession@70c81601
13:49:10.381 INFO - To downstream: {"value":{"error":"session not created","message":"Tried to run command without establishing a connection","stacktrace":"stack backtrace:\n 0: 0x4edb3c - backtrace::backtrace::trace::hc4bd56a2f176de7e\n 1: 0x4edb72 - backtrace::capture::Backtrace::new::he3b2a15d39027c46\n 2: 0x4409a1 - webdriver::error::WebDriverError::new::h81babdd86c977032\n 3: 0x4280ea - <webdriver::server::Dispatcher<T, U>>::run::h2119c674d7b88193\n 4: 0x4029b9 - std::sys_common::backtrace::__Rust_begin_short_backtrace::h21d98a9ff86d4c25\n 5: 0x40be65 - std::panicking::try::do_call::h5cff0c9b18cfdbba\n 6: 0x5e6a6c - panic_unwind::__Rust_maybe_catch_panic\n at /checkout/src/libpanic_unwind/lib.rs:99\n 7: 0x41eb22 - <F as alloc::boxed::FnBox<A>>::call_box::h413eb1d9d9f1c473\n 8: 0x5df13b - alloc::boxed::{{impl}}::call_once<(),()>\n at /checkout/src/liballoc/boxed.rs:692\n - std::sys_common::thread::start_thread\n at /checkout/src/libstd/sys_common/thread.rs:21\n - std::sys::imp::thread::{{impl}}::new::thread_start\n at /checkout/src/libstd/sys/unix/thread.rs:84"}}
Selenium Grid
構成について一言:
Test Bed
をSelenium-server-standalone-3.7.1.jar
およびclient-combined-3.5.3-nodeps.jar
として言及しました。 Best Practices
に従って、次のいずれかを使用する必要があります両方ではありません
常に最新のリリースバージョンを使用するようにしてください。つまり、Selenium-server-standalone-3.7.1.jar
Selenium_grid.sh:
では、以下を変更する必要があります。
Java -Dwebdriver.gecko.driver=/opt/Selenium/geckodriver