Size: a a a

QA — Автоматизация

2020 April 05

AV

Alexei Vinogradov in QA — Автоматизация
Зарефакторил, избавился от new. Что скажете?
источник

AV

Alexei Vinogradov in QA — Автоматизация
источник

AV

Alexei Vinogradov in QA — Автоматизация
источник

R(

Roman (rpwheeler) in QA — Автоматизация
Tony K
Всем привет!
Учу курс автоматизации Джавы,( работаю на Маке)
И что то застрял мой код не хочет дальше Нажать и выбрать количество людей...
Что я не так делаю ?

Мой код



import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;



public class Dropdown {

private static final WebElement Adults = null;

public static void main(String[] args) throws InterruptedException {
 // TODO Auto-generated method stub

 System.setProperty("webdriver.chrome.driver","/yi//Downloads//chromedriver");
 
WebDriver driver = new ChromeDriver();
 
    driver.get("https://www.spicejet.com/");

   
    driver.findElement(By.xpath("//div[@id='divpaxinfo']")).click();
   
    driver.findElement(By.xpath("//select[@id='ctl00_mainContent_ddl_Adult']"));

    Select adultsdrp = new Select(Adults);

    adultsdrp.selectByValue("2");



}


}
Вы бы код на что-то вроде pastebin выложили, с отступами и подсветкой.
источник

M

Mike in QA — Автоматизация
в java не разбираюсь, но зачем там xpath, если есть id?
источник

AB

Alexei Barantsev in QA — Автоматизация
Alexei Vinogradov
Зарефакторил, избавился от new. Что скажете?
стало хуже. бросай джаву, ты ее не любишь все равно
источник

AC

Al Ch in QA — Автоматизация
Tony K
Всем привет!
Учу курс автоматизации Джавы,( работаю на Маке)
И что то застрял мой код не хочет дальше Нажать и выбрать количество людей...
Что я не так делаю ?

Мой код



import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;



public class Dropdown {

private static final WebElement Adults = null;

public static void main(String[] args) throws InterruptedException {
 // TODO Auto-generated method stub

 System.setProperty("webdriver.chrome.driver","/yi//Downloads//chromedriver");
 
WebDriver driver = new ChromeDriver();
 
    driver.get("https://www.spicejet.com/");

   
    driver.findElement(By.xpath("//div[@id='divpaxinfo']")).click();
   
    driver.findElement(By.xpath("//select[@id='ctl00_mainContent_ddl_Adult']"));

    Select adultsdrp = new Select(Adults);

    adultsdrp.selectByValue("2");



}


}
WebElement dropdown = driver.findElement(By.id("ctl00_mainContent_ddl_Adult"));
    dropdown.findElement(By.xpath("//option[. = '2']")).click();

Решение от Selenium IDE )
источник

M

Mike in QA — Автоматизация
const passengersDropdown = document.querySelector('#divpaxinfo')
passengersDropdown.click()
const adultDropDownValue = document.querySelector('#ctl00_mainContent_ddl_Adult').value
adultDropDownValue = 2

В консоли это работает. значит можно это реализовать
источник

ДБ

Дмитрий Бромберг in QA — Автоматизация
Это Паттерн какой то?)
источник

AB

Alexei Barantsev in QA — Автоматизация
скорее антипаттерн
источник

AB

Alexei Barantsev in QA — Автоматизация
зачем накручивать столько всего в одно место — и рефлекшен, и статики, и (скорее всего) тредлокал, так что не дай боже кусочкам кода оказаться в разных потоках
источник

AB

Alexei Barantsev in QA — Автоматизация
если хочется нормальный DSL — надо взять и сделать нормальный DSL, зачем из джавы его вымучивать
источник

AV

Alexei Vinogradov in QA — Автоматизация
Вы злые)) ждём еще мнений
источник

AB

Alexei Barantsev in QA — Автоматизация
ну зачем тебе этот статик? сделай объект at, спрячь в него драйвер, и пусть он выступает в роли диспетчера:
at.mainPage().logoutButton().shouldHave(text("Logout"));
источник

AB

Alexei Barantsev in QA — Автоматизация
никаких статиков, никаких тредлокалов, никакого рефлекшена, всё явно и просто
источник

MK

Mem Kekovich in QA — Автоматизация
А мейн пейдж в объекте ат откуда появится? Пихать туда все пейджи?)
источник

AB

Alexei Barantsev in QA — Автоматизация
да, каждой странице свой метод, который возвращает соответствующий объект-страницу
источник

AB

Alexei Barantsev in QA — Автоматизация
и не надо их каждый раз создавать и инициализировать, эти объекты-страницы
источник

MK

Mem Kekovich in QA — Автоматизация
Ну тогда это не дсл 🤷🏻‍♂️
источник

AB

Alexei Barantsev in QA — Автоматизация
какая разница, DSL это или нет, я про то, что не стоит тащить рефлекшен и тредлокал куда попало
источник