2017-01-13 4 views
0

Может кто-нибудь мне помочь, пожалуйста? Я работаю с Selenide framework, используя Java. У Selenide есть метод для открытия браузера. Это выглядит так: Selenide.open("http://www.google.com");Selenide and ChromeDriver (Java)

По умолчанию используется FireFox. Для использования Chrome мне нужно установить свойство System, например:

@BeforeTest 
    public void beforeTest() { 
     Configuration.timeout=5000; 
     System.setProperty("webdriver.chrome.driver", "chromedriver"); 
    } 

Chromedriver в моей папке проекта по умолчанию. Что я делаю неправильно?

ответ

0

В this GitHub wiki page есть хорошее объяснение того, как Selenide создает WebDriver.

Как указано в разделе «How to run Selenide with another browser», вы должны установить драйвер, вызвав

System.setProperty("webdriver.chrome.driver", "/path/to/your/chrome/driver"); 
WebDriver driver = new ChromeDriver(); 

Вы могли бы взглянуть на this SO question, чтобы получить дополнительную информацию.

0

Просто добавьте расширение * .exe в имя файла, чтобы у вас было полное имя файла с его расширением. Я обычно добавляю полный путь к имени файла. Я столкнулся с этой проблемой, когда сконфигурировал пробоотборщик webdriver для jmeter. И мне пришлось предоставить полный путь к хромированию в настройках сэмплера. Позже этот подход оказался прав и с селенидом. Более подробную информацию о том, что я упомянул, можно найти здесь: How to use Selenium with webdriver, возможно, это будет полезное решение вашей задачи.

1

Вам нужно просто сделать это:

@Before 
public void setUp() 
{ 
    System.setProperty("webdriver.chrome.driver", "D:/chromedriver.exe"); 
    Configuration.browser = "chrome"; 
    open ("your link here"); 
} 
0
String chromeDriverPath = "/path/to/chromedriver.exe"; 
DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
ChromeDriverService Service = Builder 
    .usingAnyFreePort() 
    .withLogFile(new File("./chromdriver.log")) 
    .usingDriverExecutable(new File(chromeDriverPath)) 
    .build(); 
CommandExecutor commandExecutor = new DriverCommandExecutor(Service); 
RemoteWebDriver driver = new RemoteWebDriver(commandExecutor, capabilities); 
WebDriverRunner.setWebDriver(driver); //Set driver that Selenide should use 

почему вы должны использовать Chrome Service прочитать здесь: http://www.qaautomationsimplified.com/selenium/run-chromedriver-with-chrome-driver-service-to-reduce-script-execution-time-significantly/

+0

Хотя это может ответить на вопрос, [было бы предпочтительнее] (http://meta.stackoverflow.com/q/8259), включив в него важные части ответа здесь, и укажите ссылку для справки. – Peter

1
@BeforeTest 
public void setUp() 
{ 
    System.setProperty("webdriver.chrome.driver", "chromedriver exe file path"); 
    Configuration.timeout=5000; 
    Configuration.browser = "chrome"; 
    open ("https://www.google.com"); 
} 
+1

, пожалуйста, объясните, почему код решает проблему. – JimHawkins

+0

@JimHawkins System.setProperty ("webdriver.chrome.driver", "путь к хромированному exe-файлу"); -> настройка свойства для двоичного кода chomedriver, Configuration.timeout = 5000; -> настройка свойства для тайм-аута браузера по умолчанию, Configuration.browser = "chrome"; -> Настройка свойства для браузера, которому необходимо запустить, open ("https://www.google.com"); -> открывает браузер и загружает URL-адрес (https://www.google.com) –

+0

, почему вы не редактируете свой ответ и не вставляете комментарии? ??? Это больно читать ответы и после этого искать комментарии для получения дополнительной информации ... – JimHawkins

0

Если водитель находится в папке вашего проекта, вы можете написать:

System.setProperty("webdriver.chrome.driver", "src\\packages\\to\\driver\\between\\src\\and\\driver's\\folder\\chromedriver.exe"); 
1

Вы можете использовать селенид конфигурацию, как показано ниже для хромированного браузера

Configuration.browser = "chrome"; 

Вы можете увидеть этот пост для более подробной информации

+1

Можете ли вы объяснить? – mhatch

+0

Конфигурация селенида. [аналогичный вопрос] (https://stackoverflow.com/questions/30768509/how-can-i-execute-selenide-in-chrome-using-chromedriver) – Vivyen

+0

Добавить этот комментарий в исходное сообщение @Vivyen –

0

Чтобы упростить всю работу с водителем браузера просто добавить webdrivermanager зависимости к pom.xml (для Maven) или build.gradle (для Gradle). Затем добавьте

ChromeDriverManager.getInstance().setup(); 
Configuration.browser = "chrome"; 

как предварительное условие для ваших испытаний, и они будут работать в Chrome. Вам не нужно будет загружать файлы. И вы можете использовать другой браузер, изменив значение на свое имя (например, «firefox»).

0

Вы не определяете значение параметра Configuration.browser. По умолчанию selenide запустит браузер Firefox. Чтобы запустить хром, вы должны добавить следующую строку: Configuration.browser = "chrome";

Следующий код должен работать на вас.

@BeforeTest 
    public void beforeTest() { 

System.setProperty("webdriver.chrome.driver", "chromedriver"); 
Configuration.browser = "chrome"; 
Configuration.timeout=5000; 


    } 
0

У меня работает так

@BeforeClass 
    public void baseSetUp() { 
       File file = new File("/path/to/chromedriver.exe"); 
       System.setProperty("webdriver.chrome.driver", file.getAbsolutePath()); 
       driver = new ChromeDriver(); 
       WebDriverRunner.setWebDriver(driver);} 
Смежные вопросы