Браузеры (Firefox, Chrome) не запускают тесты.
вот что происходит на firefox.
package com.example.tests;
import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.MarionetteDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.Select;
public class Testclass {
private WebDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.gecko.driver", "C:/Avel/javaproj/Geckodriver/v2/geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new MarionetteDriver(capabilities);
driver = new FirefoxDriver();
baseUrl = "https://www.google.com.ua/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testUntitled() throws Exception {
driver.get(baseUrl + "/?gfe_rd=cr&ei=0Q8KWOufLO2A6ASO-7iACQ&gws_rd=ssl");
driver.findElement(By.id("lst-ib")).clear();
driver.findElement(By.id("lst-ib")).sendKeys("new query");
driver.findElement(By.name("btnG")).click();
driver.findElement(By.linkText("Class Reference/WP Query « WordPress Codex")).click();
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
BabyRoot
(Vasily)
October 28, 2016, 7:30am
#2
И какой же версии у вас FF?
Версия хромдрайвера и хрома?
Sudalius
(Alex)
October 28, 2016, 9:10am
#3
На сколько я знаю, Selenium до сих пор не работает с FireFox выше 46-й версии
Про Хром сказать ничего не могу
1 Like
seitar18
(Sergey QA)
October 28, 2016, 9:20am
#4
Так ты объявляешь не тот драйвер, лол, во-первых, надо объявлять:
WebDriver driver = new MarionetteDriver();
Во-вторых, указывай путь к лаунчеру относительным.
1 Like
to BabyRoot -> FF 49.0.2, Chrome driver 2,9, Chrome Version 54.0.2840.71 m (64-bit)
to Sudalius -> Вы уверены?
to seitar18 -> всеравно падают тесты.
Sudalius
(Alex)
October 28, 2016, 9:29am
#8
уверен…сам всегда на новую машину 46-ю версию ставлю
to Sudalius -> спасибо сейчас попробую
@Sudalius -> Поставил FF 46 - появляется exception
Кто то знает что это за эксепшн?
sergueik
(Сергей Кузьмин)
October 29, 2016, 2:04pm
#12
смотрите что в TestClass строке 38 ?
@Test
public void testUntitled() throws Exception {
driver.get(baseUrl + "/?gfe_rd=cr&ei=0Q8KWOufLO2A6ASO-7iACQ&gws_rd=ssl");
driver.findElement(By.id("lst-ib")).clear();
driver.findElement(By.id("lst-ib")).sendKeys("new query");
driver.findElement(By.name("btnG")).click();
driver.findElement(By.linkText("Class Reference/WP Query « WordPress Codex")).click();
}
какой-то из driver.findElement не найден - а вы по нему со всего размаха кликаете ! - нехорошо
assertThat( driver.findElement(By.id("lst-ib")), notNullValue());
ну и т.д.
ysparrow
(Yaroslav Pernerovskyy)
November 2, 2016, 10:38pm
#15
У вас в коде ошибка.
На скриншоте там даже ворниг подсвечнен:
WebDriver driver = new MarionetteDriver (…
Надо писать:
driver = new MarionetteDriver (…
Selenium работает с версиями выше 46.
Но, стоит отметить, что код необходимый для запуска фф активно менялся на стадии беты.
В случае с Selenium 3 и FF вам нужно следующее:
System.setProperty("webdriver.gecko.driver", "%pathToGeckoDriverFolder%\\geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", false);
driver = new FirefoxDriver(capabilities);
Спасибо. Подскажите еще кто какой использует метод для выбора из выпадающего списка?
использую тупой клик:
driver.findElement(By.xpath("//span/span/span")).click();
driver.findElement(By.xpath("//div[3]/ul/li[2]")).click();
Ничего не происходит.
использую Select:
Select select = new Select(driver.findElement(By.xpath("//form[@id='addClientForm']/div/div[6]/div/span/span/span[2]")));
select.selectByVisibleText("Albania");
Всеравно ничего не происходит. Тест выполняется до этого момента - и все - ступор.
Значения из дропдайна в кендовской обертке. В таком случае стандартные методы селениума работать не будут. А есть какие то нестандартные методы?