Из-под дефолтного браузера запускать не хочу - одна из причин - во время пробега тестов спрашивает разрешение на геолокацию, тест падает.
Как прописать в коде свой профайл? На Selenium делал -все ок, а Selenide только начал осваивать.
Отправлено 25 мая 2016 - 09:49
Из-под дефолтного браузера запускать не хочу - одна из причин - во время пробега тестов спрашивает разрешение на геолокацию, тест падает.
Как прописать в коде свой профайл? На Selenium делал -все ок, а Selenide только начал осваивать.
Отправлено 25 мая 2016 - 09:57
Отправлено 25 мая 2016 - 10:03
я там не совсем догоняю что куда :( не программист но немного понимаю, если вижу написанный код, без всяких (DesiredCapabilities capabilities)
Отправлено 25 мая 2016 - 10:36
Можно создать свой инстанс WebDriver и передать в Selenide с помощью метода
WebDriverRunner.setWebDriver(/*WebDriver instance*/);
Отправлено 25 мая 2016 - 10:49
Два раза прочитал - и вроде кажется, что хотите профайл в FF сменить, и сразу кажется что нет.
Первая ссылка в гугле: http://toolsqa.com/s...irefox-profile/
Оно?
Для разнообразия можно загружать драйвер со стороны:
public WebDriver driver;
driver = loadFFwithProf();
public WebDriver loadFFWithProf() throws Exception {
ProfilesIni ini = new ProfilesIni();
FirefoxProfile profile = ini.getProfile("ProfileName");
profile.setPreference("prefName", "about:blank"); // можно запускать драйвер с какими-то preference
return new FirefoxDriver(profile);
}
Отправлено 25 мая 2016 - 14:26
Спасибо! Теперь понятно =) буду пробовать
Отправлено 25 мая 2016 - 14:56
Два раза прочитал - и вроде кажется, что хотите профайл в FF сменить, и сразу кажется что нет.
Да, во время запуска теста ФФ запускает "нулевой" профиль, а мне надо, чтоб запускал мой браузер с настройками.
Вот код:
Какие предложения будут?
import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.WebDriverRunner;
import com.codeborne.selenide.junit.ScreenShooter;
import org.junit.Rule;
import org.junit.Test;
import org.openqa.selenium.By;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.open;
public class Registration {
@Rule
public ScreenShooter makeScreenshotOnFailure = ScreenShooter.failedTests();
public void setUp() {
Configuration.timeout = 30000;
Configuration.reopenBrowserOnFail = true;
}
@Test
public void registration() {
DateFormat df = new SimpleDateFormat("ddMMyyyyHHmmss");
Date today = Calendar.getInstance().getTime();
String todayDate = df.format(today);
String log = "qatestbw+" + todayDate + "@gmail.com";
String pwd = "111111Qq";
String baseUrl = "http://demo.yourtime.org.ua";
open(baseUrl);
$(By.xpath("/html/body/div[1]/div[1]/div/div[5]/div[2]")).waitUntil(Condition.visible, 30000).click();
$(By.xpath("/html/body/div[5]/div[2]/table/tbody/tr/td[4]/div/img")).waitUntil(Condition.visible, 30000).click();
$(By.xpath("//div[@id='ytLoginRegistration']/div/input")).waitUntil(Condition.visible, 30000).clear();
$(By.xpath("//div[@id='ytLoginRegistration']/div/input")).waitUntil(Condition.visible, 30000).val(log);
$(By.xpath("//div[@id='ytLoginRegistration']/div/input[2]")).waitUntil(Condition.visible, 30000).clear();
$(By.xpath("//div[@id='ytLoginRegistration']/div/input[2]")).waitUntil(Condition.visible, 30000).val(pwd);
$(By.xpath("//div[@id='ytLoginRegistration']/div/input[3]")).waitUntil(Condition.visible, 30000).clear();
$(By.xpath("//div[@id='ytLoginRegistration']/div/input[3]")).waitUntil(Condition.visible, 30000).val(pwd);
$(By.xpath("/html/body/div[5]/div[2]/div/div[3]/button")).waitUntil(Condition.visible, 30000).click();
$(By.xpath("/html/body/div[11]/div[2]/div[2]/button")).waitUntil(Condition.visible, 30000).click();
$(By.xpath("/html/body/div[1]/div[1]/div/div[3]/span[1]")).shouldHave(Condition.text(log));
//разлогиниваемся
$("#ytLogout").shouldBe(Condition.visible).waitUntil(Condition.visible, 30000).click();
$("#popup_ok").shouldBe(Condition.visible).waitUntil(Condition.visible, 30000).click();
WebDriverRunner.clearBrowserCache();
Selenide.refresh();
//залогиниваемся
$("#ytLogin").shouldBe(Condition.visible).click();
$(By.xpath("/html/body/div[5]/div[2]/div/div[2]/div/form/input[1]")).shouldBe(Condition.visible).val(log);
$(By.xpath("/html/body/div[5]/div[2]/div/div[2]/div/form/input[2]")).shouldBe(Condition.visible).val(pwd);
$(By.xpath("/html/body/div[5]/div[2]/div/div[2]/button")).shouldBe(Condition.visible).click();
$("#globalStateLine").shouldHave(Condition.text(log));
}
Отправлено 25 мая 2016 - 15:44
Создайте WebDriver с нужным профилем как Вы делали это на селениуме. Вызовите метод WebDriverRunner.setWebDriver() и передайте созданый WebDriver. Так пробовали?
$(By.xpath("/html/body/div[1]/div[1]/div/div[5]/div[2]")).waitUntil(Condition.visible, 30000).click();
Вот так лучше не делать.
1) Попробуйте переписать локатор чтобы он не зависел от строения страницы. Используйте id, class, name
2) Поскольку Вы уже указали Configuration.timeout = 30000; то не надо использовать waitUntil и явно указывать ожидание. Вместо этого используйте shouldBe(visible)
3) Зачем здесь Вы ждете 2 раза одно и тоже событие $("#ytLogout").shouldBe(Condition.visible).waitUntil(Condition.visible, 30000).click(); ?
Отправлено 26 мая 2016 - 07:42
Создайте WebDriver с нужным профилем как Вы делали это на селениуме. Вызовите метод WebDriverRunner.setWebDriver() и передайте созданый WebDriver. Так пробовали?
$(By.xpath("/html/body/div[1]/div[1]/div/div[5]/div[2]")).waitUntil(Condition.visible, 30000).click();
Вот так лучше не делать.
1) Попробуйте переписать локатор чтобы он не зависел от строения страницы. Используйте id, class, name
2) Поскольку Вы уже указали Configuration.timeout = 30000; то не надо использовать waitUntil и явно указывать ожидание. Вместо этого используйте shouldBe(visible)
3) Зачем здесь Вы ждете 2 раза одно и тоже событие $("#ytLogout").shouldBe(Condition.visible).waitUntil(Condition.visible, 30000).click(); ?
Буду пробовать.
1) к моему сожалению xpath отрабатывает лучше всего, у элементов может не быть "id, class, name", но советом воспользуюсь.
2) у меня было shouldBe(visible), но не ждало столько, сколько указано timeout, поэтому припилил waitUntil. UPD выставлен timeout 30000, но ошибка при запуске - Element not found {.yt-login-ico-register selected-button}
3) ошибочка, спасибо, поправил
я только учусь и делаю это, потому что мне нравится, на работе не требуют от меня автоматизации
Сообщение отредактировал holydiverinc: 26 мая 2016 - 07:58
Отправлено 26 мая 2016 - 08:50
4 секунды было потому, что у метода setUp() не хватает аннотации @Before
Тестирование →
Автоматизированное тестирование →
Selenium - Functional Testing →
Не загружается плагин в браузер Firefox с использованием SelenideАвтор VIRTOK, 13 сен 2024 |
|
|
||
Тестирование →
Автоматизированное тестирование →
Selenium - Functional Testing →
Selenide. Как получить текст из тега, если там 2 строки?Автор iserg, 23 ноя 2022 |
|
|
||
Тестирование →
Автоматизированное тестирование →
запуск тестов selenide на localhostАвтор Ivonin, 31 мар 2021 |
|
|
||
Тестирование →
Автоматизированное тестирование →
Как сделать так чтобы при падении теста браузер закрывался?Автор sechd, 22 фев 2021 |
|
|
||
Тестирование →
Автоматизированное тестирование →
Selenium - Functional Testing →
Ошибка при открытии Url с использованием SelenideАвтор Sergey_Terentev, 01 фев 2021 |
|
|
0 пользователей, 0 гостей, 0 анонимных