Гуглить то пробовали?
гуглить пробовал, там пишут что проблема в обновлении.
36 публикаций создано thepauloo89 (учитываются публикации только с 28 апреля 2023)
Отправлено автор: thepauloo89 24 марта 2016 - 05:28 в Selenium - Functional Testing
Гуглить то пробовали?
гуглить пробовал, там пишут что проблема в обновлении.
Отправлено автор: thepauloo89 21 марта 2016 - 10:37 в Selenium - Functional Testing
public void waitForAjaxToFinish() {
long currentTime = System.currentTimeMillis();
while (System.currentTimeMillis() - currentTime < 40000) {
boolean ajaxFinished = (Boolean) ((JavascriptExecutor) driver) /// в этой строке ошибка
.executeScript("return !!jQuery && jQuery.active == 0");
if (ajaxFinished)
return;
}
throw new AssertionError("Ajax haven't finished its job in 40 sec");
}
на этом методе падает тест с такой ошибкой кто нить встречался с таким?
INFO: I/O exception (java.net.SocketException) caught when processing request to {}->http://localhost:44505: No buffer space available (maximum connections reached?): connect
Отправлено автор: thepauloo89 24 марта 2016 - 05:31 в Selenium - Functional Testing
проблема решена и она действительно из за этого метода, проверка посылала слишком много запросов и делала это каждый раз через новые порты, тем самым их занаимая, и не успевала освобождать. добавил в метод паузу теперь при приходе проверки после каждого прохода он ждет секунду.
вот методы первый сам из за которого проблема, второй это пауза.
public void waitForAjaxToFinish() {
long currentTime = System.currentTimeMillis();
while (System.currentTimeMillis() - currentTime < 10000) {
boolean ajaxFinished = (Boolean) ((JavascriptExecutor) driver)
.executeScript("return !!jQuery && jQuery.active == 0");
pause(1000);
if (ajaxFinished)
return;
}
throw new AssertionError("Ajax haven't finished its job in 100 sec");
}
public void pause(long mills) {
try {
Thread.sleep(mills); //1000 milliseconds is one second.
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
Отправлено автор: thepauloo89 24 марта 2016 - 05:28 в Selenium - Functional Testing
Павел, прочитайте шапку этой ветки форума и укажите что там написано.
я не совсем понял для чего это делать.
Отправлено автор: thepauloo89 29 марта 2016 - 10:19 в Selenium - Functional Testing
Павел, прочитайте шапку этой ветки форума и укажите что там написано.
я не совсем понял для чего это делать.
1. Указать какие версии вы всего чего используете.
2. Полный стектрейс ошибки.
версии браузеров и вебдраивером были разные, и на самых актуальных падало, в соседней теме решили проблему.
Отправлено автор: thepauloo89 31 января 2017 - 07:36 в Selenium - Functional Testing
Привет.
Нужна жесткая пауза.
хотел сделать через задержку и интервал проверки, т.е. паузу в интервал проверок.
Но пауза не выполняется, после нахождения элемента всеравно сразу продалжается выполнение.
WebDriverWait wait = new WebDriverWait(browser.getDriver(), 10000, 10000); WebElement elementik = wait.until(new ExpectedCondition<WebElement>(){ @Override public WebElement apply(WebDriver d) { return d.findElement(lblElement.getLocator()); }});Не понимаю почему не работает.
на сайте http://selenium2.ru/...ced-usage.html
описано:
Данный код будет либо выдаст исключение “TimeoutException” по прошествии 10 секунд, либо вернет найденный в течении 10 секунд элемент. По умолчанию “WebDriverWait” вызывает “ExpectedCondition” каждые 500 миллисекунд до тех пор, пока условие не будет удовлетворено. Условие считается удовлетворенным, если было возвращено “true” в случае булевого “ExpectedCondition” и не “null” для “ExpectedCondition” других типов.
т.к. не работает пауза 10000, решил попробовать паузу через интервал сделать, но тоже не работает.
нужна пауза равная Thread.sleep(1000);
что не так?
забыл про существование этой темы)) тему создал когда только начинал в этом всем разбираться)
сейчас делаю вот так паузу которая просто останавливает процесс, но такое использовать не рекомендуется, этот метод в главном классе описываю и потом где нужно просто вызываю
Пауза
public void pause(long mills) {
try {
Thread.sleep(mills); //1000 milliseconds is one second.
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
Отправлено автор: thepauloo89 16 марта 2016 - 09:19 в Selenium - Functional Testing
Отправлено автор: thepauloo89 16 марта 2016 - 09:24 в Selenium - Functional Testing
package main;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
/**
* Created by thepauloo89 on 15.03.2016.
*/
public class BookingCart extends FirstClass {
public BookingCart(WebDriver driver) {
super(driver);}
String doc_num = "1231231231";
@FindBy (xpath = "//input[@docnumber='" + doc_num + "']") // вот это он подчеркивает и пишет attribute value must be constant
WebElement changeDocument; // выбор документа
}
Отправлено автор: thepauloo89 16 марта 2016 - 10:28 в Selenium - Functional Testing
попробуй так
String doc_num = "1231231231"; String doc_num_xpath = "//input[@docnumber='" + doc_num + "']") driver.findElement(By.xpath(doc_num_xpath));
Спасибо за помощь уместил все это и зхаработало!!!! МУХАХАХАХХА
сделал вот так
public void changeDocNum(String docNum) {
String docNumXpath = "//input[@docnumber='" + docNum + "']";
driver.findElement(By.xpath(docNumXpath)).click();
}
когда делал вспомнил что делал подобное с дабл кликом чтобы так же делать дабл клик на любой Элемент.
Отправлено автор: thepauloo89 16 марта 2016 - 08:58 в Selenium - Functional Testing
doc_num = "123" doc_num_search_xpath = "//input[@docnumber='" + doc_num + "']"
а можешь целиком метод описать ? я не совсем понимаю где это писать.
вот мой код
ublic class BookingCart extends FirstClasss {
public BookingCart(WebDriver driver) {
super(driver);}
вот тут нужно создать??? (
private String docnum;
@FindBy (xpath = "//input[@docnumber='" + doc_num + "']")
WebElement changeDocument; // выбор документа
я ведь не могу просто переменную создать она будет ругаться
attribute value must be constant
Отправлено автор: thepauloo89 16 марта 2016 - 09:06 в Selenium - Functional Testing
String doc_num = "1231231231"; @FindBy (xpath = "//input[@docnumber='" + doc_num + "']") WebElement changeDocument; // выбор документа
я ведь не могу просто переменную создать она будет ругаться
attribute value must be constant
Отправлено автор: thepauloo89 16 марта 2016 - 08:50 в Selenium - Functional Testing
Например метод в который я передаю данные вот так выглядит.
public void otkudaKuda(String otkuda, String kuda){
departure.sendKeys(otkuda);
wait.until(ExpectedConditions.elementToBeClickable(dropListotkuda));
dropListotkuda.click();
arrival.sendKeys(kuda);
wait.until(ExpectedConditions.elementToBeClickable(dropListKuda)).click();
как то по аналогии с этим можно передавать в поиск Элемента данные?
Отправлено автор: thepauloo89 16 марта 2016 - 07:44 в Selenium - Functional Testing
xpath //input[type='radio'][contains(text,'ПН:')]
не работает
Отправлено автор: thepauloo89 16 марта 2016 - 07:27 в Selenium - Functional Testing
Отправлено автор: thepauloo89 16 марта 2016 - 07:50 в Selenium - Functional Testing
xpath //input[type='radio'][contains(text,'ПН:')]
Отправлено автор: thepauloo89 16 марта 2016 - 07:46 в Selenium - Functional Testing
xpath //input[type='radio'][contains(text,'ПН:')]не работает
а как то приравнять поиск по ID в поиск по docnumber и передавать в него нужный мне номер возможно?
Отправлено автор: thepauloo89 16 марта 2016 - 08:44 в Selenium - Functional Testing
xpath //input[type='radio'][contains(text,'ПН:')]Ага, неправильный. Во-первых, нужны скобки после text(), во-вторых, input не содержит текста в данном случае.
а в третьих нет @ перед аттрибутом. Спасибо.
xpath //input[type='radio'][contains(text,'ПН:')]не работает
а как то приравнять поиск по ID в поиск по docnumber и передавать в него нужный мне номер возможно?
да, xpath не правильный)
если я правильно понял, что ты имеешь ввиду, то вот так
//input[@docnumber='1231231231']но это снова xpath
тут он будет выбирать по конкретному номеру документа, нужно чтобы в коде не был указан номер документа чтобы я мог его универсально использовать для разных тестов
не очень понял. ну подтяни из базы номер документа и подставляй в xpath.
Ты этот докнамбер сам создаешь же через UI ?
@FindBy (xpath = "//input[@docnumber='1231231231']")
WebElement changeDocument; // выбор документа
он так находит этот вариант я знал, но я не знаю как в данном случае сделать то что после знака "=" переменной
docnumber создается когда я создаю паспорт пользователю, паспорта у тестового пользователя я знаю но я хотел сделать метод в который при написании теста я мог бы передать любые цифры вот так так
bookingCart.changeDocument(номер нужного документа).click(); я понимаю что так можно делать с полем ввода и как это сделать с полем ввода я знаю, а можно как либо сделать это именно с поиском Элемента?
Отправлено автор: thepauloo89 16 марта 2016 - 08:30 в Selenium - Functional Testing
xpath //input[type='radio'][contains(text,'ПН:')]Ага, неправильный. Во-первых, нужны скобки после text(), во-вторых, input не содержит текста в данном случае.
*** Element info: {Using=xpath, value=//input[type='radio'][contains(text,'ПН:')]}
тоже не подходит(
Отправлено автор: thepauloo89 16 марта 2016 - 08:09 в Selenium - Functional Testing
xpath //input[type='radio'][contains(text,'ПН:')]не работает
а как то приравнять поиск по ID в поиск по docnumber и передавать в него нужный мне номер возможно?
да, xpath не правильный)
если я правильно понял, что ты имеешь ввиду, то вот так
//input[@docnumber='1231231231']но это снова xpath
тут он будет выбирать по конкретному номеру документа, нужно чтобы в коде не был указан номер документа чтобы я мог его универсально использовать для разных тестов
Отправлено автор: thepauloo89 26 февраля 2016 - 13:07 в Selenium - Functional Testing
1. Одновременно? - это типа чтобы несколько браузеров на одной машине в одно время работали с тестами? - смотря как вы их вообще запускаете, если используете jUnit - https://maven.apache...ples/junit.html - раздел Running Tests in Parallel
2. Запуск тестов на другой машине - использовать Грид - http://selenium2.ru/...enium-grid.html . Запуск на других браузерах - http://selenium2.ru/docs/webdriver.html#id5
А так вообще-то совет - просмотреть какое-нить видео часа на полтора - написание и запуск тестов на селениум.
одновременно, это если я буду просто кликать на классы руками и запускать то могу все запустить параллельно/одновременно, хочется запускать одной кнопкой все, и есть потребность запускать их на виртуальной машине и не через иде а как то иначе чтобы IDE не была всегда открыта
Отправлено автор: thepauloo89 29 февраля 2016 - 06:34 в Selenium - Functional Testing
1. Если использовать аннотации TestNG, можно использовать не Run, а "Run as TestNG" (про JUnit не знаю, но можно поискать в конфигурациях запуска). Если судить по скриншоту - разница лишь в том, что аннотация Test берется из пакета testng.
2. В конфигурациях запуска IDEA - можно выбрать, что именно запускать: конкретный метод, конкретный класс, либо, например, вообще все из определенной папки (в вашем примере - запустить все из папки Chrome или IE, либо вообще - main и т.д.). При таком запуске - будут запущены одной кнопкой, но идти будут по очереди.
3. Опять таки, был бы TestNG - можно было делать запуск через xml. В самом xml как раз есть возможность параллельного запуска тестов (у себя запускать так пробовала - могу лишь сказать, что сам запуск работает, мне он оказался неудобен из-за особенностей ПО и тестов).
4. Про виртуальную машину - см.выше.
Подскажите более подробного как запускать через XML, или где почитать попробую сеичас переделать его на testng
Отправлено автор: thepauloo89 26 февраля 2016 - 11:46 в Selenium - Functional Testing
в IDEA на JAVA есть тесты (запускаю их правой кнопкой мыши на класс-> RUN), если кликать так же на папку то они запускаются по очереди а нужно чтобы все классы одновременно стартовали.
так же есть потребность запускать их на виртуально машине чтобы проверять в разных браузерах, подскажите где прочитать как это делать или может кто подскажет решение готовое.
и как в целом это реализуют люди.
Отправлено автор: thepauloo89 15 июня 2016 - 08:18 в Автоматизированное тестирование
Какие версии перечисленного вы используете?
<aspect.jweaver.version>1.8.9</aspect.jweaver.version>
<selenium.server.version>2.53.0</selenium.server.version>
<junit.version>4.12</junit.version>
<allure.maven.plugin.version>2.5</allure.maven.plugin.version>
<maven.surefire.plugin>2.19.1</maven.surefire.plugin>
Отправлено автор: thepauloo89 15 июня 2016 - 07:40 в Автоматизированное тестирование
Java Maven Junit
При таких параметрах, запускаются все методы в классе по очереди,
так
<configuration>
<parallel>methods</parallel>
<threadCountMethods>4</threadCountMethods>
<testFailureIgnore>true</testFailureIgnore>
либо так
<configuration>
<parallel>methods</parallel>
<threadCount>4</threadCount>
<testFailureIgnore>true</testFailureIgnore>
При таких все классы запускаются в которых есть слово "Test"
так
<parallel>classes</parallel>
<threadCountClasses>4</threadCountClasses>
<testFailureIgnore>true</testFailureIgnore>
либо так
<parallel>classes</parallel>
<threadCount>4</threadCount>
<testFailureIgnore>true</testFailureIgnore>
Подскажите почему так происходит
Отправлено автор: thepauloo89 22 апреля 2016 - 06:51 в Автоматизированное тестирование
Нужно чтобы папка target создавалась не в директории проекта, а на другой машине(\\172.2.4.2\folder\folder\)
где в pom файле это прописывать?
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/20...chema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache....aven-4.0.0.xsd" >
<modelVersion>4.0.0</modelVersion>
<groupId>Test2</groupId>
<artifactId>Test2</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<allure.version>1.4.16</allure.version>
<aspectj.version>1.8.5</aspectj.version>
</properties>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>2.53.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.10</version>
</dependency>
<dependency>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-testng-adaptor</artifactId>
<version>${allure.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<parallel>classes</parallel>
<threadCount>4</threadCount>
<testFailureIgnore>true</testFailureIgnore>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.2.10.v20150310</version>
<configuration>
<webAppSourceDirectory>${project.build.directory}/site/allure-maven-plugin</webAppSourceDirectory>
<stopKey>stop</stopKey>
<stopPort>1234</stopPort>
</configuration>
</plugin>
</plugins>
</build>
<reporting>
<excludeDefaults>true</excludeDefaults>
<plugins>
<plugin>
<groupId>ru.yandex.qatools.allure</groupId>
<artifactId>allure-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</reporting>
</project>
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: Software-Testing.Ru