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

Различие зарплат QA



Различие зарплат QA
2021-11-16 00:05

Здравствуйте. Появился вопрос связанный с полем работы.

 

При просмотре вакансий можно увидеть следующую ситуацию:

 

Имеются вакансии на мануальных QA по 40к  и на мануальных QA по 140-180к (не лиды)

 

Вопрос. в чем конкретное отличие работы этих двух категорий? Нужно какое-то знание редких инструментов? Или все тот же UI/APi ??? 

 

В чем конкретное различие работы у них ?



проблема с проверкой наличия элемента на странице в цикле и выходом из
2021-11-16 12:55

Есть боковое меню типа:
Раздел 1
Раздел 2
Раздел 2

Раздел №№
После проверки в разделе с неправильными данными появляется алерт (//label[@class = 'z-checkbox-content)
Происходит переход в раздел с чекбоксом
Чекбокс виден
Удаляются неправильные данные
Проверка - есть ли чекбокс
Если есть, то удаляем данные дальше
Если нет, переходим в следующий раздел
Я оформила это циклом, то есть цикл крутится, пока есть чекбокс. Как только он пропадает, то происходит переход в следующий раздел.
Пробовала реализовать проверку чекбокса разными способоками.

  1. Через счетчик, проверяя величину массива по (//label[@class = 'z-checkbox-content
Скрытый текст

package ex1;

import exMail.SleepUtil;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;

import static org.testng.Assert.assertTrue;

public class ErrorRed {
WebElement element;
WebDriver driver;
String red = “rgba(194, 68, 66, 1)”;
// int j= 3;

public ErrorRed (WebElement element, WebDriver driver) {
this.element = element;
this.driver = driver;
}

public void clearOld() {
int j= driver.findElements(By.xpath("//label[@class = 'z-checkbox-content']")).size(); //переменная для счетчика
WebElement check = driver.findElement(By.xpath("//label[@class = 'z-checkbox-content']"));
while(j>0) //цикл крутит, пока виден элемент label[@class = 'z-checkbox-content']
{
SleepUtil.sleep(9000);
WebElement check2 = driver.findElement(By.xpath("//label[@class = 'z-checkbox-content']"));
check2.click();
SleepUtil.sleep(8000);
System.out.println("выделение чекбокса прошло");
WebElement flag = driver.findElement(By.xpath("//td[@class = 'left-align z-listcell']")); //жмем, чтобы выделилось для корзины
flag.click();
SleepUtil.sleep(9000);
WebElement del = driver.findElement(By.xpath("//i[@class = 'glyphicon glyphicon-trash']")); //корзина
del.click();
SleepUtil.sleep(9000);
WebElement yes = driver.findElement(By.xpath("//button[@class='z-messagebox-button btn btn-sm btn-primary']")); // да в окошке
yes.click();
SleepUtil.sleep(11000);
}
System.out.println("выход из цикла"); //проверка корректного выхода из цикла, если напечатал, то выход из цикла корректен
}

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

Скрытый текст

C:\Program Files\Java\jdk-11.0.10\bin\java.exe" -ea -Didea.test.cyclic.buffer.size=1048576 “-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\lib\idea_rt.jar=63736:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\bin” -Dfile.encoding=UTF-8 -classpath “C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\plugins\testng\lib\testng-rt.jar;E:\обучение\test\EkaterinaGruzintceva_LevelUp\selenium1\target\test-classes;C:\Users\kate.m2\repository\org\testng\testng\7.4.0\testng-7.4.0.jar;C:\Users\kate.m2\repository\com\beust\jcommander\1.78\jcommander-1.78.jar;C:\Users\kate.m2\repository\org\webjars\jquery\3.5.1\jquery-3.5.1.jar;C:\Users\kate.m2\repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\kate.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-java\4.0.0\selenium-java-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-api\4.0.0\selenium-api-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\4.0.0\selenium-chrome-driver-4.0.0.jar;C:\Users\kate.m2\repository\com\google\auto\service\auto-service-annotations\1.0\auto-service-annotations-1.0.jar;C:\Users\kate.m2\repository\com\google\auto\service\auto-service\1.0\auto-service-1.0.jar;C:\Users\kate.m2\repository\com\google\auto\auto-common\1.0\auto-common-1.0.jar;C:\Users\kate.m2\repository\com\google\guava\guava\31.0.1-jre\guava-31.0.1-jre.jar;C:\Users\kate.m2\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\kate.m2\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\kate.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\Users\kate.m2\repository\org\checkerframework\checker-qual\3.12.0\checker-qual-3.12.0.jar;C:\Users\kate.m2\repository\com\google\errorprone\error_prone_annotations\2.7.1\error_prone_annotations-2.7.1.jar;C:\Users\kate.m2\repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-chromium-driver\4.0.0\selenium-chromium-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-json\4.0.0\selenium-json-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-devtools-v85\4.0.0\selenium-devtools-v85-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-devtools-v93\4.0.0\selenium-devtools-v93-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-devtools-v94\4.0.0\selenium-devtools-v94-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-devtools-v95\4.0.0\selenium-devtools-v95-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.0.0\selenium-edge-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\4.0.0\selenium-firefox-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-firefox-xpi-driver\4.0.0\selenium-firefox-xpi-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\4.0.0\selenium-ie-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-opera-driver\4.0.0\selenium-opera-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\4.0.0\selenium-remote-driver-4.0.0.jar;C:\Users\kate.m2\repository\io\netty\netty-buffer\4.1.68.Final\netty-buffer-4.1.68.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-codec-http\4.1.67.Final\netty-codec-http-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-codec\4.1.67.Final\netty-codec-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-handler\4.1.67.Final\netty-handler-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-common\4.1.68.Final\netty-common-4.1.68.Final.jar;C: \Users\kate.m2\repository\io\netty\netty-transport-native-epoll\4.1.67.Final\netty-transport-native-epoll-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-transport-native-kqueue\4.1.67.Final\netty-transport-native-kqueue-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-transport-native-unix-common\4.1.67.Final\netty-transport-native-unix-common-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-transport\4.1.68.Final\netty-transport-4.1.68.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-resolver\4.1.68.Final\netty-resolver-4.1.68.Final.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-api\1.6.0\opentelemetry-api-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-context\1.6.0\opentelemetry-context-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-exporter-logging\1.6.0\opentelemetry-exporter-logging-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.6.0-alpha\opentelemetry-sdk-metrics-1.6.0-alpha.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-common\1.6.0\opentelemetry-sdk-common-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.6.0\opentelemetry-sdk-extension-autoconfigure-spi-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.6.0-alpha\opentelemetry-sdk-extension-autoconfigure-1.6.0-alpha.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-trace\1.6.0\opentelemetry-sdk-trace-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-api-metrics\1.6.0-alpha\opentelemetry-api-metrics-1.6.0-alpha.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk\1.6.0\opentelemetry-sdk-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-semconv\1.6.0-alpha\opentelemetry-semconv-1.6.0-alpha.jar;C:\Users\kate.m2\repository\io\ous\jtoml\2.0.0\jtoml-2.0.0.jar;C:\Users\kate.m2\repository\net\bytebuddy\byte-buddy\1.11.19\byte-buddy-1.11.19.jar;C:\Users\kate.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\kate.m2\repository\org\asynchttpclient\async-http-client\2.12.3\async-http-client-2.12.3.jar;C:\Users\kate.m2\repository\org\asynchttpclient\async-http-client-netty-utils\2.12.3\async-http-client-netty-utils-2.12.3.jar;C:\Users\kate.m2\repository\io\netty\netty-codec-socks\4.1.60.Final\netty-codec-socks-4.1.60.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-handler-proxy\4.1.60.Final\netty-handler-proxy-4.1.60.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-transport-native-epoll\4.1.60.Final\netty-transport-native-epoll-4.1.60.Final-linux-x86_64.jar;C:\Users\kate.m2\repository\io\netty\netty-transport-native-kqueue\4.1.60.Final\netty-transport-native-kqueue-4.1.60.Final-osx-x86_64.jar;C:\Users\kate.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Users\kate.m2\repository\com\typesafe\netty\netty-reactive-streams\2.0.4\netty-reactive-streams-2.0.4.jar;C:\Users\kate.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\kate.m2\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-http\4.0.0\selenium-http-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-safari-driver\4.0.0\selenium-safari-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-support\4.0.0\selenium-support-4.0.0.jar” com.intellij.rt.testng.RemoteTestNGStarter -usedefaultlisteners false -socket63735 @w@C:\Users\kate\AppData\Local\Temp\idea_working_dirs_testng.tmp -temp C:\Users\kate\AppData\Local\Temp\idea_testng.tmp
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See SLF4J Error Codes for further details.
Starting ChromeDriver 95.0.4638.54 (d31a821ec901f68d0d34ccdbaea45b4c86ce543e-refs/branch-heads/4638@{#871}) on port 59277
Only local connections are allowed.
Please see ChromeDriver - WebDriver for Chrome - Security Considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
нояб. 15, 2021 11:55:50 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
нояб. 15, 2021 11:55:52 AM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
INFO: Found exact CDP implementation for version 95
rgba(194, 68, 66, 1)
выделение чекбокса прошло
выделение чекбокса прошло
выделение чекбокса прошло
выделение чекбокса прошло

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {“method”:“xpath”,“selector”:"//label[@class = ‘z-checkbox-content’]"}
(Session info: chrome=95.0.4638.69)
For documentation on this error, please visit: https://selenium.dev/exceptions/#no_such_element
Build info: version: ‘4.0.0’, revision: ‘3a21814679’
System info: host: ‘KATEC’, ip: ‘192.168.27.209’, os.name: ‘Windows 8.1’, os.arch: ‘amd64’, os.version: ‘6.3’, java.version: ‘11.0.10’
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [b958f84c70f149aab060e19eecd47d19, findElement {using=xpath, value=//label[@class = ‘z-checkbox-content’]}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 95.0.4638.69, chrome: {chromedriverVersion: 95.0.4638.54 (d31a821ec901f…, userDataDir: C:\Users\kate\AppData\Local…}, goog:chromeOptions: {debuggerAddress: localhost:63755}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), se:cdp: ws://localhost:63755/devtoo…, se:cdpVersion: 95.0.4638.69, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: b958f84c70f149aab060e19eecd47d19
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:53)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:164)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:139)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:559)
at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:162)
at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:60)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:383)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:375)
at ex1.ErrorRed.clearOld(ErrorRed.java:29)
at ex1.Rgis.rgisAll(Rgis.java:52)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:598)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:824)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.testng.TestRunner.privateRun(TestRunner.java:794)
at org.testng.TestRunner.run(TestRunner.java:596)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332)
at org.testng.SuiteRunner.run(SuiteRunner.java:276)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1134)
at org.testng.TestNG.runSuites(TestNG.java:1063)
at org.testng.TestNG.run(TestNG.java:1031)
at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)

===============================================
Default Suite
Total tests run: 1, Passes: 0, Failures: 1, Skips: 0

Process finished with exit code 0

Вариант 2 через метод isDisplayed

Скрытый текст

package ex1;

import exMail.SleepUtil;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;

import static org.testng.Assert.assertTrue;

public class ErrorRed {
WebElement element;
WebDriver driver;
String red = “rgba(194, 68, 66, 1)”;
// int j= 3;

public ErrorRed (WebElement element, WebDriver driver) {
this.element = element;
this.driver = driver;
}

public void clearOld() {
int j= driver.findElements(By.xpath("//label[@class = 'z-checkbox-content']")).size();
WebElement check = driver.findElement(By.xpath("//label[@class = 'z-checkbox-content']"));
while(check.isDisplayed()) // если виден элемент, то цикл идет
{
SleepUtil.sleep(9000);
WebElement check2 = driver.findElement(By.xpath("//label[@class = 'z-checkbox-content']"));
check2.click();
SleepUtil.sleep(8000);
System.out.println("выделение чекбокса прошло");
WebElement flag = driver.findElement(By.xpath("//td[@class = 'left-align z-listcell']")); //жмем, чтобы выделилось для корзины
flag.click();
SleepUtil.sleep(9000);
WebElement del = driver.findElement(By.xpath("//i[@class = 'glyphicon glyphicon-trash']")); //корзина
del.click();
SleepUtil.sleep(9000);
WebElement yes = driver.findElement(By.xpath("//button[@class='z-messagebox-button btn btn-sm btn-primary']")); // да в окошке
yes.click();
SleepUtil.sleep(11000);
}
System.out.println("выход из цикла"); //проверка корректного выхода из цикла, если напечатал, то выход из цикла корректен

}

 

В этом случае тест проходит 1 цикл и валится:

Скрытый текст

“C:\Program Files\Java\jdk-11.0.10\bin\java.exe” -ea -Didea.test.cyclic.buffer.size=1048576 “-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\lib\idea_rt.jar=57214:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\bin” -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\plugins\testng\lib\testng-rt.jar;E:\обучение\test\EkaterinaGruzintceva_LevelUp\selenium1\target\test-classes;C:\Users\kate.m2\repository\org\testng\testng\7.4.0\testng-7.4.0.jar;C:\Users\kate.m2\repository\com\beust\jcommander\1.78\jcommander-1.78.jar;C:\Users\kate.m2\repository\org\webjars\jquery\3.5.1\jquery-3.5.1.jar;C:\Users\kate.m2\repository\junit\junit\4.13.2\junit-4.13.2.jar;C:\Users\kate.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-java\4.0.0\selenium-java-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-api\4.0.0\selenium-api-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\4.0.0\selenium-chrome-driver-4.0.0.jar;C:\Users\kate.m2\repository\com\google\auto\service\auto-service-annotations\1.0\auto-service-annotations-1.0.jar;C:\Users\kate.m2\repository\com\google\auto\service\auto-service\1.0\auto-service-1.0.jar;C:\Users\kate.m2\repository\com\google\auto\auto-common\1.0\auto-common-1.0.jar;C:\Users\kate.m2\repository\com\google\guava\guava\31.0.1-jre\guava-31.0.1-jre.jar;C:\Users\kate.m2\repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;C:\Users\kate.m2\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\kate.m2\repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;C:\Users\kate.m2\repository\org\checkerframework\checker-qual\3.12.0\checker-qual-3.12.0.jar;C:\Users\kate.m2\repository\com\google\errorprone\error_prone_annotations\2.7.1\error_prone_annotations-2.7.1.jar;C:\Users\kate.m2\repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-chromium-driver\4.0.0\selenium-chromium-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-json\4.0.0\selenium-json-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-devtools-v85\4.0.0\selenium-devtools-v85-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-devtools-v93\4.0.0\selenium-devtools-v93-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-devtools-v94\4.0.0\selenium-devtools-v94-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-devtools-v95\4.0.0\selenium-devtools-v95-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\4.0.0\selenium-edge-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\4.0.0\selenium-firefox-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-firefox-xpi-driver\4.0.0\selenium-firefox-xpi-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\4.0.0\selenium-ie-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-opera-driver\4.0.0\selenium-opera-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\4.0.0\selenium-remote-driver-4.0.0.jar;C:\Users\kate.m2\repository\io\netty\netty-buffer\4.1.68.Final\netty-buffer-4.1.68.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-codec-http\4.1.67.Final\netty-codec-http-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-codec\4.1.67.Final\netty-codec-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-handler\4.1.67.Final\netty-handler-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-common\4.1.68.Final\netty-common-4.1.68.Final.jar;C:

\Users\kate.m2\repository\io\netty\netty-transport-native-epoll\4.1.67.Final\netty-transport-native-epoll-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-transport-native-kqueue\4.1.67.Final\netty-transport-native-kqueue-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-transport-native-unix-common\4.1.67.Final\netty-transport-native-unix-common-4.1.67.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-transport\4.1.68.Final\netty-transport-4.1.68.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-resolver\4.1.68.Final\netty-resolver-4.1.68.Final.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-api\1.6.0\opentelemetry-api-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-context\1.6.0\opentelemetry-context-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-exporter-logging\1.6.0\opentelemetry-exporter-logging-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-metrics\1.6.0-alpha\opentelemetry-sdk-metrics-1.6.0-alpha.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-common\1.6.0\opentelemetry-sdk-common-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure-spi\1.6.0\opentelemetry-sdk-extension-autoconfigure-spi-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-extension-autoconfigure\1.6.0-alpha\opentelemetry-sdk-extension-autoconfigure-1.6.0-alpha.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk-trace\1.6.0\opentelemetry-sdk-trace-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-api-metrics\1.6.0-alpha\opentelemetry-api-metrics-1.6.0-alpha.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-sdk\1.6.0\opentelemetry-sdk-1.6.0.jar;C:\Users\kate.m2\repository\io\opentelemetry\opentelemetry-semconv\1.6.0-alpha\opentelemetry-semconv-1.6.0-alpha.jar;C:\Users\kate.m2\repository\io\ous\jtoml\2.0.0\jtoml-2.0.0.jar;C:\Users\kate.m2\repository\net\bytebuddy\byte-buddy\1.11.19\byte-buddy-1.11.19.jar;C:\Users\kate.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\kate.m2\repository\org\asynchttpclient\async-http-client\2.12.3\async-http-client-2.12.3.jar;C:\Users\kate.m2\repository\org\asynchttpclient\async-http-client-netty-utils\2.12.3\async-http-client-netty-utils-2.12.3.jar;C:\Users\kate.m2\repository\io\netty\netty-codec-socks\4.1.60.Final\netty-codec-socks-4.1.60.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-handler-proxy\4.1.60.Final\netty-handler-proxy-4.1.60.Final.jar;C:\Users\kate.m2\repository\io\netty\netty-transport-native-epoll\4.1.60.Final\netty-transport-native-epoll-4.1.60.Final-linux-x86_64.jar;C:\Users\kate.m2\repository\io\netty\netty-transport-native-kqueue\4.1.60.Final\netty-transport-native-kqueue-4.1.60.Final-osx-x86_64.jar;C:\Users\kate.m2\repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;C:\Users\kate.m2\repository\com\typesafe\netty\netty-reactive-streams\2.0.4\netty-reactive-streams-2.0.4.jar;C:\Users\kate.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\kate.m2\repository\com\sun\activation\jakarta.activation\1.2.2\jakarta.activation-1.2.2.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-http\4.0.0\selenium-http-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-safari-driver\4.0.0\selenium-safari-driver-4.0.0.jar;C:\Users\kate.m2\repository\org\seleniumhq\selenium\selenium-support\4.0.0\selenium-support-4.0.0.jar" com.intellij.rt.testng.RemoteTestNGStarter -usedefaultlisteners false -socket57213 @w@C:\Users\kate\AppData\Local\Temp\idea_working_dirs_testng.tmp -temp C:\Users\kate\AppData\Local\Temp\idea_testng.tmp
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See SLF4J Error Codes for further details.

Starting ChromeDriver 95.0.4638.54 (d31a821ec901f68d0d34ccdbaea45b4c86ce543e-refs/branch-heads/4638@{#871}) on port 62909
Only local connections are allowed.
Please see ChromeDriver - WebDriver for Chrome - Security Considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
нояб. 15, 2021 1:01:26 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
нояб. 15, 2021 1:01:27 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
INFO: Found exact CDP implementation for version 95
rgba(194, 68, 66, 1)
выделение чекбокса прошло

org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document
(Session info: chrome=95.0.4638.69)
For documentation on this error, please visit: https://selenium.dev/exceptions/#stale_element_reference
Build info: version: ‘4.0.0’, revision: ‘3a21814679’
System info: host: ‘KATEC’, ip: ‘192.168.27.209’, os.name: ‘Windows 8.1’, os.arch: ‘amd64’, os.version: ‘6.3’, java.version: ‘11.0.10’
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [ebd0a5b9e148ee78c00c217a30a8cf37, isElementDisplayed {id=d4f2d22a-0465-4dad-a964-86d8b530ba89}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 95.0.4638.69, chrome: {chromedriverVersion: 95.0.4638.54 (d31a821ec901f…, userDataDir: C:\Users\kate\AppData\Local…}, goog:chromeOptions: {debuggerAddress: localhost:57269}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), se:cdp: ws://localhost:57269/devtoo…, se:cdpVersion: 95.0.4638.69, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Element: [[ChromeDriver: chrome on WINDOWS (ebd0a5b9e148ee78c00c217a30a8cf37)] → xpath: //label[@class = ‘z-checkbox-content’]]
Session ID: ebd0a5b9e148ee78c00c217a30a8cf37

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:53)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:164)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:139)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:559)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:251)
at org.openqa.selenium.remote.RemoteWebElement.isDisplayed(RemoteWebElement.java:307)
at ex1.ErrorRed.clearOld(ErrorRed.java:26)
at ex1.Rgis.rgisAll(Rgis.java:52)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:598)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:173)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:824)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:146)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.testng.TestRunner.privateRun(TestRunner.java:794)
at org.testng.TestRunner.run(TestRunner.java:596)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:377)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:371)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:332)
at org.testng.SuiteRunner.run(SuiteRunner.java:276)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1212)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1134)
at org.testng.TestNG.runSuites(TestNG.java:1063)
at org.testng.TestNG.run(TestNG.java:1031)
at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109)

===============================================
Default Suite
Total tests run: 1, Passes: 0, Failures: 1, Skips: 0

Process finished with exit code 0



Перед погружением начните с мелководья
2021-11-17 11:02

Автор: Майкл Болтон (Michael Bolton)
Оригинал статьи
Перевод: Ольга Алифанова

 

Тестировщики часто задают мне два вопроса:

 

Как мне продемонстрировать ценность тестирования менеджменту?

Как получить больше времени на тестирование?

 

Начнем со второго вопроса. Чувствуете ли вы себя очумевшим от объема продукта, который вам надо покрыть, в сравнении с выделенным на это временем? Беспокоитесь ли вы, что вам не хватит времени на поиск значимых проблем?

 

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



Assertion (NoSuchElementException)
2021-11-17 12:39

Всех приветствую. Я новичок в автоматизации тестирования. В данный момент столкнулся с одной проблемой. Попытки прогуглить и найти решение в документации не увенчались успехом, поэтому решил обратиться к профессионалам. Очень надеюсь на вашу помощь или хотябы зацепку. Итак проблема следующая:

Сначала инструменты и язык программирования:
Python

Pytest

Selenium

Allure

У меня есть тест кейс. Я хочу прописать Assertion к последнему шагу этого кейса.

Сценарий такой:
Я ищу определенный элемент на странице и если элемент найден, то тест кейс пройден успешно, в противном случае тест кейс зафейлен.

Сама проблема:
Когда элемент не найден я получаю ошибку "NoSuchElementException" и мой тест проваливается как и ожидалось. Но тут возникает проблема с отчетами. В отчетах указывается что тест провалился из за неправильного кода (так как элемент не был найден), а мне нужно как то обработать данный exception и переопределить его с "проблемы с кодом" на "проблему с функционалом". 

Любая помощь будет мне очень полезна)

Заранее спасибо. 



Метрики в тестировании: какие выбрать и что делать, когда они становят
2021-11-18 10:21

Автор: Людмила Лихогляд, сотренер курса “Аудит и оптимизация QA-процессов”

 

На каждом потоке курса по аудиту и оптимизация QA-процессов, самые популярные вопросы от студентов – о метриках. Мы рады делиться с вами ответами от экспертов-тренеров курса, которые они дают студентам в чатах потока, и сегодня поговорим о KPI и значениях метрик.

 

Вопрос: Касательно метрик: откуда берется градация, что есть отлично, хорошо и недопустимо? Например, есть метрика crash free users. Есть ли какие-то стандарты для разных категорий приложений?  Как установить то пороговое значение, просадка ниже которого для нас будет инцидентом и потребует незамедлительных действий? Домен – игровые мобильные приложения.

При этом СТО говорит что-то в духе: «Наши приложения должны быть лучшими и вообще не падать»:)

 

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



Есть ли смысл искать IT-работу в РФ с разговорным англйиским?
2021-11-19 18:14

Привет всем! Нашел этот форум чтобы обсудить важный сейчас для меня вопрос - куда идти собеседоваться на что-то средние между junior или middle фронтендером (да, этот форум про QA но для этого вопроса не важно имхо). Есть свои проекты, один активно используется для бизнес-целей отделом в 30 человек, могу создавать большинство интерфейсов что встречаю в инете. Занимаюсь кодингом года полтора, но пока не ходил на собесы. У меня свободный разговорный английский, хочется как-то конвертировать это в +деньги к ЗП. И вот думаю - стоит ли вообще искать работу в РФ, если преимущество в языке? Живу в московской временной зоне. Спасибо!



ХPath: что нужно делать, а что нет
2021-12-06 12:30

Автор: Поздняков Антон Игоревич (Инженер по автоматизированному тестированию), ООО "Хоппер ИТ"

 

В прошлый раз мы уже поднимали тему написания селекторов на XPath для автоматизации тестирования веб-сервисов.

 

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

 

Мы постоянно работаем с большими объемами тестов, и по мере роста количества заказов в команду приходят новые инженеры. Именно обучение стало поводом для размышлений над тем, что такое “хороший XPath”, а что такое “плохой XPath”. 

 

На первый взгляд может показаться, что в этом вопросе нет ничего сложного: просто берете общепринятый стандарт для селекторов, сверху кладете документацию по XPath и отдаете все это новому сотруднику со словами: “Знакомься товарищ!”. Но практика показала, что просто знаний синтаксиса недостаточно. И в работе встречаются как хорошие, так и плохие практики написания селекторов. Именно исходя из этого опыта и родился этот пост. А ниже вы найдете те принципы и практики, которые мы выработали сами для себя, набив несколько шишек, потратив часы лишнего времени на исправления и так далее. 

 

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



Работа со свободным графиком. Нужны все
2021-12-06 19:34
Предоставляем уникальную возможность участникам форума устроиться на относительно несложную работу, но прибыльную работу. Доход средний или высокий - зависит только от вас! Пишите в телеграм @karabeitm

Быстрое трудоустройство, высокая ЗП!
2021-12-06 21:38
Нужна работа? Высокий доход! Образование и опыт не требуются. Пиши в телеграм @karabeitm

Высокий доход без опыта и вложений, нужны серьезные люди
2021-12-06 22:18
Заинтересованы в хорошем заработке? Прошу в телеграм @karabeitm

Ищем людей на работу, без опыта
2021-12-07 02:21
Нужны целеустремленные парни и девушки на высокооплачиваемую работу. Опыт работы не требуется. Зарплата примерно от 100к в месяц и при должном старании может доходить до 500-600к! Вакансии ограничены, поторопитесь!Жду вас в телеграме @karabeitm

В избранное