Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Покрываем A/B-тесты UI-тестами. Как не запутаться в собственном коде



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Покрываем A/B-тесты UI-тестами. Как не запутаться в собственном коде
2019-02-15 09:34

Оригинальная публикация

 

Меня зовут Виталий Котов, я работаю в компании Badoo и бо́льшую часть времени занимаюсь вопросами автоматизации тестирования. Решением одного такого вопроса я и хочу поделиться в этой статье.

Речь пойдёт о том, как мы организовали процесс работы UI-тестов с A/B-тестами, коих у нас немало. Я расскажу о том, с какими проблемами мы столкнулись и к какому флоу пришли в итоге. Добро пожаловать под кат!

 

Читать статью полностью...



Локатор внутри iframe находится только при пошаговой отладке - куда ко
2019-02-15 17:41

День добрый, коллеги!

 

Удивительное рядом. Всю голову сломал.

Задача - понажимать кнопочки во всплывающем поверх основного окне - QATool, а конкретно нажать на правую верхнюю кнопку (Settings).

Всё это добро лежит во фрейме, см. скриншот. 

 

Screenshot-191-15-02-19_LI.jpg

 

Что я делаю: 

1. Нахожу фрейм, переключаюсь в него.

2. Ищу внутри него элемент по id.

3. Кликаю на элемент. 

4. PROFIT

WebElement Qatool=wait.until(presenceOfElementLocated(By.xpath("//*[@id='dptIframe']")));
        
driver.switchTo().frame(Qatool); //переключились во фрейм 

WebElement settings = driver.findElement(By.id("maxypt-tab-bttn-settings"));

settings.click();

Вопрос в следующем - при отладке в IDEA, когда прохожу пошагово этот блок, всё хорошо, а вот при автоматизированном запуске, падает на 

WebElement settings = driver.findElement(By.id("maxypt-tab-bttn-settings"));

c  ошибкой NoSuchElementException

 

В порядке решения проблемы, пробовал следующее:

1. Менял локаторы, методы - один результат - пошагово проходит, автоматом - падает.

2. Пробовал переключаться на driver.switchTo().defaultContent()

3. Пробовал использовать явные ожидания.

4. Пробовал расставлять паузы.

 

Результат один - по шагам работает, автоматически - нет. 

Может кто сталкивался с такой бедой?

 

 

 



Actions работает только c FirefoxDriver
2019-02-16 13:47

Имею следующий простенький код, который выполняется только с Gecko (Firefox) driver.

 

Тот же код с любым другим драйвером кидает exception:

 

Exception in thread "main" java.lang.AbstractMethodError: org.openqa.selenium.remote.RemoteWebElement.getCoordinates()Lorg/openqa/selenium/interactions/Coordinates;
at org.openqa.selenium.interactions.internal.MouseAction.getActionLocation(MouseAction.java:69)
at org.openqa.selenium.interactions.MoveMouseAction.perform(MoveMouseAction.java:42)
at org.openqa.selenium.interactions.CompositeAction.perform(CompositeAction.java:34)
at org.openqa.selenium.interactions.Actions$BuiltAction.perform(Actions.java:642)
at utils.CheckActions.main(CheckActions.java:36)
 
Код:
 
import org.openqa.selenium.Cookie;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;


import java.util.concurrent.TimeUnit;

public class CheckActions {
public static void main(String[] args) {

// System.setProperty("webdriver.gecko.driver", "geckodriver.exe");
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");


// WebDriver driver = new FirefoxDriver();

WebDriver driver = new ChromeDriver();

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();

driver.get("http://google.com");

Actions action = new Actions(driver);

WebElement field = driver.findElement(By.xpath("//input[@name='q']"));

//action.sendKeys(field, "BLABLABLA").build().perform();
action.moveToElement(field).build().perform();

driver.close();
}
}


© 2010 | Software-Testing.Ru


В избранное