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

WinAppDriver + Selenium не может найти элемент



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

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


WinAppDriver + Selenium не может найти элемент
2019-06-28 10:57

Всем привет! Пробую для автоматизации тестирования связку WinAppDriver + Selenium

package ru.minicom.itphone.client;

import io.appium.java_client.windows.WindowsDriver;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.URL;
import java.util.concurrent.TimeUnit;

public class NewTestClient {
private static WindowsDriver ClientSession = null;
private static WebElement Result = null;
private static String wapPath = "C:\\Program Files (x86)\\Windows Application Driver\\";
private static String wapName = "WinAppDriver.exe";
private static ProcessBuilder wap;
private static Process shell;

@BeforeClass
public static void setup() {
try {
/*wap = new ProcessBuilder(wapPath + wapName);
shell = wap.start();*/
DesiredCapabilities cap = new DesiredCapabilities();
//cap.setCapability("app", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App");
//cap.setCapability("platformName", "Windows");
//cap.setCapability("deviceName", "WindowsPC");
cap.setCapability("app", "C:\\Program Files (x86)\\SoftPhone\\CLIENT\\SoftPhoneClient.exe");
ClientSession = new WindowsDriver(new URL("http://127.0.0.1:4723"), cap);
ClientSession.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
} catch (Exception e){
e.printStackTrace();
}finally {

}
}

@Test
public void checkLoginPage(){
System.out.println(checkLoginWindow());
Assert.assertTrue(checkLoginWindow());
}

@AfterClass
public static void AfterClass(){
Result = null;
if(ClientSession != null){
ClientSession.quit();
}
ClientSession = null;

//shell.destroy();
}

public boolean checkLoginWindow(){
try{
ClientSession.findElementByClassName("TfrmLogin");
return true;
}catch (Exception e){
return false;
}
}
}

Запускаю тест, запускается моя программа, но проверка не проходит.

Но если программа была уже запущена до запуска теста, тогда тест проходит. Что это за баг такой?



Как упростить Selenium-тесты при помощи Katalon Studio
2019-06-28 11:16

Selenium против Katalon Studio – узнайте, как упростить Selenium-тесты при помощи Katalon Studio (на примере тест-кейса авторизации в обоих инструментах).

 

Автоматизированное тестирование – это техника, в которой одно приложение проводит тестирование другого приложения.

 

Автоматизированное тестирование – очень ценная в мире Web-проектов практика. Автоматизация широко в них применяется, так как позволяет выгодно проводить UI-тестирование, критически важное для обеспечения высококачественного сервиса.

 

Selenium – один из наиболее популярных инструментов Web-автоматизации с открытым исходным кодом. При помощи Selenium можно сделать очень многое – например, провести рефакторинг веб-элементов в классы, которые легко вновь и вновь использовать в тест-кейсах.

 

Однако для новичков в автоматизации эти хитрые задачи могут не соответствовать тест-потребностям. Скорее всего, вы еще не хотите морочить себе голову такими сложностями, и хотите сразу приступить к созданию тестов и по ходу дела изучить принципы тест-дизайна.

 

В этом случае Katalon Studio подойдет вам больше.

 

Эта статья – введение в автоматизированное тестирование.

 

Сначала мы займемся автоматизацией кейса авторизации при помощи Selenium – фреймворка на основе Web. Затем мы научимся делать то же самое, но с меньшими усилиями, используя Katalon Studio.

 

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



Покрытие требований
2019-06-30 12:59

Добрый день , при покрытие требований на несколько устройств, например Айфон X  и ПК, нужно писать под каждый девайс сценарий отдельно ? Т



C# Не удается добавить расширения для Mozilla Firefox
2019-06-30 21:15

Пытаюсь добавить расширение таким образом:

var fireDriverService = FirefoxDriverService.CreateDefaultService();
var profileManager = new FirefoxProfileManager();
FirefoxOptions option = new FirefoxOptions();
option.Profile = profileManager.GetProfile("default");
option.Profile.AddExtension(@"anticaptcha.xpi");
//option.Profile.SetPreference("extensions","99.9");
Browser2 = new FirefoxDriver(fireDriverService, option);

При запуске выдает на строке 

Browser2 = new FirefoxDriver(fireDriverService, option);

Следующую ошибку:

 

System.ArgumentOutOfRangeException: "Параметры Year, Month и Day описывают непредставимое значение DateTime."
 
 
При удалении добавления расширения, а именно строчки
option.Profile.AddExtension(@"anticaptcha.xpi");

Ошибка пропадает.

 

Так вот, я не понимаю о какой дате идет речь и как исправить эту ошибку. Думал, что необходимо добавить определенные настройки для расширения, например, вот так:

//option.Profile.SetPreference("extensions","99.9");

В файле расширения (вроде .manifest или около того), безусловно, есть определенные поля, которые можно заполнить, но какие именно нужно заполнять поля и как именно вообще не понимаю...

 



Не взаимодействует со вторым элементом из списка с одинаковыми class
2019-06-30 23:03

На странице http://todomvc.com/examples/backbone/#/ пытаюсь написать сценарий который удаляет второй из двух введённых в список элементов.

Я использую связку Selenium+Java.

 

При использовании  driver.findElementByClassName("destroy").click();  - клик срабатывает, но удаляется первый пункт, а нужно удалить второй

При использовании  driver.findElementsByClassName("destroy").get(1).click();  - появляется ошибка element not interactable
При использовании  driver.findElementByXPath("//section/ul/li[2]/div/button").click();  - тоже появляется ошибка element not interactable
 
Фактически, кнопка для удаления появляется после того, как навести на неё курсор.
Но использование 
Actions cursorOnDestroyButton = new Actions(driver);
List <WebElement> destroyList = driver.findElements(By.className("destroy"));
cursorOnDestroyButton.moveToElement(destroyList.get(1)).click();
тоже не помогло.
В таком случае никаких ошибок не появляется, но и с элементами ничего не происходит, не удаляется вообще ни первый ни второй пункт.
 

Подскажите, в чём здесь ошибка и как такое реализовать?

 



© 2010 | Software-Testing.Ru


В избранное