Из-под дефолтного браузера запускать не хочу - одна из причин - во время пробега тестов спрашивает разрешение на геолокацию, тест падает.
Как прописать в коде свой профайл? На 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 анонимных