Quantcast
Channel: Selenium - Functional Testing: новые темы
Viewing all 702 articles
Browse latest View live

Как мы автоматизировали запуск Selenium-тестов через Moon и OpenShift

$
0
0

Авторы: Соковец Артем, Маркелов Дмитрий

 

14 декабря на митапе в Санкт-Петербурге я (Артем Соковец) совместно с коллегой, Дмитрием Маркеловым, рассказывал о текущей инфраструктуре для автотестов в СберТехе. Пересказ нашего выступления — в этом посте.

 

Что такое Selenium

 

Selenium — это инструмент для автоматизации действий веб-браузера. На сегодня данный инструмент является стандартом при автоматизации WEB.

 

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


selenium.common.exceptions.ElementClickInterceptedException:

$
0
0

Всем привет!

Сделали переход на Selenium 3.9.0 + GeckoDriver 0.19 + FireFox 58.0.2.

 

 

Теперь половина тестов не работает, и везде возникает ошибка: selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a id="tree54" class="tree54" href="javascript:void(0);"> is not clickable at point (151,823) because another element <div class="sidebarBottomElement"> obscures it

Айдишники и классы разные, в зависимости от точки клика.

 

Как это победить? 

 

Написан отдельный метод на клик:

Язык тестов - Python

def click(driver, locator, sleep_time=5, expl_wait=40):
"""
Wait until element will be shown and clickable, then send 'click' to it.
TimeoutException will be generated if something's wrong (NOT NoSuchElementException).

:type driver: WebDriver
:type locator: tuple
:param sleep_time: delay before click
:param expl_wait: explicit waiting time for presence of element will found
:type sleep_time: float
:type expl_wait: float
"""

time.sleep(sleep_time)
WebDriverWait(driver, expl_wait, ignored_exceptions=StaleElementReferenceException).until(
ec.presence_of_element_located(locator))
# additional check were deleted, cause of some unexpected timeout exceptions on it
WebDriverWait(driver, 40).until(ec.element_to_be_clickable(locator))
driver.find_element(*locator).click()
wait_for_loading(driver)

 

К слову, на селениуме 2,53 и мозиле 45 все работало как часы.

Что нужно добавить\поменять, чтобы тесты бегали на ура? При просмотре через консоль, этот элементы куда надо кликнуть никем не перекрывается!

Невозможность взаимодействия с элементом DOM

$
0
0

Доброго дня!

 

Так получилось, что я занимаюсь автоматизацией тестирования в нашей компании. Тесты прогоняются на 4 основных браузерах: Chrome, Firefox, Edge, Safari, в качестве инструмента. Я использую связку Selenium+Pytest.

 

И вот при подготовке одного из тестов я обнаружил, что он всегда падает в Safari, когда во всех остальных браузерах проходит успешно. Начал разбираться, оказалось, что причина - то, что не может быть совершен клик по кнопке, которая скрывает/раскрывает спойлер. Сначала подумал, что дело в загрузке, и добавил WebDriverWait. Ожидание отрабатывает, т.е. драйвер видит, что элемент появился, но действие с ней выполнить не может - выбрасывает эксцепшон:

selenium.common.exceptions.ElementNotInteractableException: Message:
C:\python\lib\site-packages\selenium\webdriver\remote\errorhandler.py:242: ElementNotInteractableException

Похожая ерунда была с другим тестом в Эдж: там есть список подкатегорий, нужно навести на любую, чтобы появилось дополнительное меню. При прогоне теста, первый элемент работает как надо, а последующие становятся неактивными. И это только в тестах, в реальности все работает.

 

И отсюда у меня возникает вопрос: с чем связано такое поведение? Есть ли воркараунд, если кто сталкивался?

Поле очищается, затем заполняется старым значением. Почему?

$
0
0

Помогите начинающему автоматизатору)

Тест должен очистить поля ввода и написать в них новое значение. Вот такой код:

wd.findElement(By.cssSelector("[name=name]")).clear();
wd.findElement(By.cssSelector("[name=name]")).sendKeys(name);
wd.findElement(By.cssSelector("[name=surname]")).clear();
wd.findElement(By.cssSelector("[name=surname]")).sendKeys(surname);

со вторым полем всё ок, а первое - сначала очищает, затем пишет значение старое+новое. Почему?! 

ОШИБКА. Selenium, Facebook WebDriver, PHP.

$
0
0

Добрый день! Пытаюсь разобраться с selenium.

 

Использую: selenium-server-standalone-3.9.1 и Facebook WebDriver.

 

 
При выполнении этого кода, все норм. Открывается в хроме страница гугл.

<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities);
$driver->get('https://www.google.com/');
print 'ok';
?>

 

А вот если добавляем строку : $driver->findElement(WebDriverBy::xpath('*[@id="tsf"]/div[2]/div/div[3]/center/input[2]'))->sendKeys('abc')->click();

<?php
namespace Facebook\WebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
require_once('vendor/autoload.php');
$host = 'http://localhost:4444/wd/hub';
$capabilities = DesiredCapabilities::chrome();
$driver = RemoteWebDriver::create($host, $capabilities);
$driver->get('https://www.google.com/');
$driver->findElement(WebDriverBy::xpath('*[@id="tsf"]/div[2]/div/div[3]/center/input[2]'))->sendKeys('abc')->click();
print 'ok';
?>

 
 
То вылетает ошибка вот такая:

Fatal error: Uncaught Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"*[@id="tsf"]/div[2]/div/div[3]/center/input[2]"} (Session info: chrome=75.0.3770.80) For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html Build info: version: '3.9.1', revision: '63f7b50', time: '2018-02-07T22:42:28.403Z' System info: host: 'OBR-PC', ip: '192.168.100.104', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_211' Driver info: driver.version: unknown in C:\xampp\htdocs\vendor\facebook\webdriver\lib\Exception\WebDriverException.php:102 Stack trace: #0 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\HttpCommandExecutor.php(326): Facebook\WebDriver\Exception\WebDriverException::throwException(7, 'no such element...', Array) #1 C:\xampp\htdocs\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php(547): Facebook\WebDriver\Remote\HttpCommandExecutor->execute(Object(Facebook\WebD in [/size] C:\xampp\htdocs\vendor\facebook\webdriver\lib\Exception\WebDriverException.php on line [/size]102

 
 
Подскажите как быть, вчера весь день убил на поиск решения, так и не разобрался((
 
 
В качестве руководства использовал вот эту статью: http://kaplunenko.name/webbrowser-automation-selenium-facebook-webdriver-php-how-to-make-screenshot/

Выбор значения из выпадающего списка.

$
0
0

Здравствуйте! Использую WebDriver, Chrome 74, Python 3.4

Возникает следующая проблема: не могу передать значение в value из переменной

 

from selenium import webdriver

link = 'http://suninjuly.github.io/selects1.html'
driver = webdriver.Chrome()
driver.get(link)
def calc(x, y):
    return str(int(x)+int(y))

a = driver.find_element_by_id("num1")
b = driver.find_element_by_id("num2")
ax = a.text
bx = b.text
c = calc(ax, bx)
print©

driver.find_element_by_id('dropdown').click()
driver.find_element_by_css_selector('[value="c"]').click()
driver.find_element_by_css_selector('button.btn').click()

Имею вот такую ошибку

 

Traceback (most recent call last):
  File "C:/Python34/Lessons/27.py", line 17, in <module>
    driver.find_element_by_css_selector('[value="c"]').click()
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 597, in find_element_by_css_selector
    return self.find_element(by=By.CSS_SELECTOR, value=css_selector)
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 966, in find_element
    'value': value})['value']
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute
    self.error_handler.check_response(response)
  File "C:\Python34\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[value="c"]"}
  (Session info: chrome=74.0.3729.169)
  (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 6.1.7601 SP1 x86_64)

Подскажите, пожалуйста.

Кликанье по Web-элементам при помощи Selenium WebDriver

$
0
0

Автор: Энди Найт (Andy Knight)
Оригинал статьиhttps://automationpanda.com/2018/06/15/web-element-clicks-with-selenium-webdriver/
Перевод: Ольга Алифанова

 

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

 

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

Не передаётся значение перменной

$
0
0

Всем привет! Уже всю голову сломал себе, но хоть убей не понимаю, почему не передается параметр переменной в качестве значения атрибута.

 

 

Прикрепленные изображения

  • value_var.jpg

WebdrioverIO не кликает по кнопке

$
0
0

Привет. не могу кликнуть по кнопке. Помогите пожалуйста. 

Дано тест:

const assert = require('assert');
 
describe('Desktop login', () => {
    it('Retail login', async () => {
        await browser.setWindowSize(1024, 768);
        await browser.url('https://gepur.com');
        const loginButton = await $('a.h-account');
        await loginButton.click();
        const email = await $('id=loginform-email');
        email.setValue('login');
        const password = await $('id=loginform-password');
        password.setValue('password');
        browser.debug();
        const submitButton = await $('=Войти');
        await submitButton.click();
        browser.pause(3000);
        let url1 = await driver.getUrl()
        browser.pause(3000);
        await assert.equal(url1, 'https://gepur.com/');
        //await loginButton.click();
        //const url = browser.getUrl();
        //await assert.equal(url, 'https://gepur.com/account/show/main');
    });
});

После await submitButton.click(); редиректа на гланую не происходит. кнопка рабочая, руками проверял...... Помогите понять причину пожалуйста )))

NullPointerException при запуске теста

$
0
0

Добрый день. Столкнулся с проблемой - NullPointerException при запуске теста. Ошибка падает на строке "driver.get("http://localhost/addressbookv4.1.4/group.php");" Это не проблема приложения addressbook, с другими ресурсами так же. Библиотеки Selenium подключены. Код был сгенерирован рекордером, я только измениль имена классов и сделал импорт недостающих элементовю В чем может быть проблема?

package sandbox.addressbook;

import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

public class Group {
public static ChromeDriver driver;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();

@Before
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Downloads\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver();
baseUrl = "https://www.katalon.com/";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test
public void Group() throws Exception {
driver.get("http://localhost/addressbookv4.1.4/group.php");
driver.findElement(By.id("nav")).click();
driver.findElement(By.linkText("groups")).click();
driver.findElement(By.name("new")).click();
driver.findElement(By.name("group_name")).click();
driver.findElement(By.name("group_name")).clear();
driver.findElement(By.name("group_name")).sendKeys("Name");
driver.findElement(By.name("group_header")).click();
driver.findElement(By.name("group_header")).clear();
driver.findElement(By.name("group_header")).sendKeys("Header");
driver.findElement(By.name("group_footer")).click();
driver.findElement(By.name("group_footer")).clear();
driver.findElement(By.name("group_footer")).sendKeys("Footer");
driver.findElement(By.name("submit")).click();
driver.findElement(By.linkText("group page")).click();
}
}
java.lang.NullPointerException
	at sandbox.addressbook.Group.Group(Group.java:27)
	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:567)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:583)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:719)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:989)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
	at org.testng.TestRunner.privateRun(TestRunner.java:648)
	at org.testng.TestRunner.run(TestRunner.java:505)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
	at org.testng.SuiteRunner.run(SuiteRunner.java:364)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
	at org.testng.TestNG.runSuites(TestNG.java:1049)
	at org.testng.TestNG.run(TestNG.java:1017)
	at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:73)
	at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)

Не находит кнопку (no such element: Unable to locate element)

$
0
0

Всем привет.
Пытаюсь реализовать алгоритм, котороый будет нажимать на кнопку, которая появляется в всплывающем меню.
То есть. Есть элемент странички, при наведении мышки на которой всплывает меню. И в этом меню требуется нажать на кнопку.
 

Код следующий.

menu = d.find_element_by_css_selector('a.n-t.bold')
actions = ActionChains(d)
actions.move_to_element(menu)
hidden_submenu = d.find_element_by_xpath('//span[contains(text(),"Отписаться")]')
actions.click(hidden_submenu)
actions.perform()

 

Выполнение падает на строке:

hidden_submenu = d.find_element_by_xpath('//span[contains(text(),"Отписаться")]')

 

И я не совсем уверен что я правильно ищу этот элемент.
Кусочек кода страницы с этой кнопкой выглядит вот так:

<ul class="ul"><li class="ic_subscribe-off">

    <a href="javascript:;" class="gwt-shortcutMenu-iconlink-item">

        <span>Отписаться</span></a></li></ul>

 

Подскажите пожалуйста, как это реализовать? Где это можно посмотреть?

Selenium-webdriver, NodeJS, Mocha, chai. Все тесты запускаются сразу.

$
0
0

Привет Помогите пожалуйста сделать так чтоб:

1. Тесты запускались по очереди (после завершения первого теста, запускается второй, третий и так далее (только после завершения предыдущего))

2. каждый новый тест создает новое окно браузера.

 

Что-то я наворотил и немножко запутался ))

const expect = require('chai').expect;
const equal = require('chai').equal;
const webdriver = require('selenium-webdriver');
const driver = new webdriver.Builder().forBrowser('chrome').build();
const Key = require('selenium-webdriver');
const By = webdriver.By;

describe('Desktop Login', () => {

    it('Retail', (done) => {
        setTimeout(() => {
            driver.get('https://gepur.com').then(async () => {
                await driver.manage().window().maximize();    
                await driver.findElement(By.className('h-account'))
                .then(el => el.click())
                .then(() => driver.findElement(By.id('loginform-email')))
                .then(el => el.sendKeys('someLogin'))
                .then(() => driver.findElement(By.id('loginform-password')))
                .then(el => el.sendKeys('somePasswd'))
                .then(() => driver.findElement(By.css('button.btn-basik.btn-sm.btn-black')))
                .then(el => el.click());
                
                await driver.sleep(500);
                let siteUrl = await driver.getCurrentUrl();
                expect(siteUrl).to.equal('https://gepur.com/');
                await driver.quit();
            });
            done();
        }, 1000);        
    });

    it('Wholesale', (done) => {
        setTimeout(() => {
            driver.get('https://gepur.com').then(async () => {
                await driver.manage().window().maximize();    
                await driver.findElement(By.className('h-account'))
                .then(el => el.click())
                .then(() => driver.findElement(By.id('loginform-email')))
                .then(el => el.sendKeys('someLogin'))
                .then(() => driver.findElement(By.id('loginform-password')))
                .then(el => el.sendKeys('somePasswd'))
                .then(() => driver.findElement(By.css('button.btn-basik.btn-sm.btn-black')))
                .then(el => el.click());
                
                await driver.sleep(500);
                let siteUrl = await driver.getCurrentUrl();
                expect(siteUrl).to.equal('https://gepur.com/');
                await driver.quit();
            });
            done();
        }, 1000);        
    });
});

Selenium IDE - Ajax Wait timed out after 30000ms

$
0
0

При выполнении теста у меня в ветке verify element present выдаёт такое сообщение. Я так понимаю Selenuim IDE не умеет работать с AJAX?

Selenium WebDriver - Не получается выбрать элемент в выпадающем меню

$
0
0

Всем привет!

Столкнулся с проблемой пытаясь прокрутить выпадающий список. Точнее, не смог выбрать нужный элемент (например, год 2010)

table_2.png

код, который это реализует - 

<div class="v-menu__content menuable__content__active" style="min-width: 290px; top: 552px; left: 551px; transform-origin: left top; z-index: 204;">
	<div class="v-picker v-card v-picker--date">
		<div class="v-picker__body" style="width: 290px;">
			<div>
				<ul class="v-date-picker-years">
					<li class="">2029</li>
					<li class="">2028</li>
					...
					<li class="">2000</li>
				</ul>
			</div>
		</div>
	</div>
</div>

RobotFramework категорически отказывается скролить и кликать в нужный элемент, какой способ указания элемента не выбери - в RF не работает ни один из

Click Element //div[@id='app']/div/div/div/div/ul/li[20]
Click Element //li[contains(.,'2010')]
Click Element css=li:nth-child(20)

В каком-то случае ругается что 

ElementNotVisibleException: Message: element not interactable
в другом - 
ElementClickInterceptedException: Message: element click intercepted: Element <input aria-label="Год" readonly="readonly" type="text"> is not clickable at point (840, 535). Other element would receive the click: <div class="v-li
st__tile__content">...</div>

Когда пишет что "точка клика перекрыта" я конечно верю:

table_4.png

Команда Scroll Element Into View отлично работающая в обычных "выпадашках" тут ничего не скролит.

 

В Selenium IDE те же самые локаторы отлично работают: 

ide.png

 

IDE даже не проматывая список успешно выставляет значение. Не переживая, в видимой области оно находится или нет.

Скопированные в тест .robot команды перестают работать. В чём подвох?

 

Как прокрутить страницу используя selenium?

$
0
0
Здравствуйте!
Многие сайт, например фб и вк испоkьзуют подзагрузку страницы при движении курсора вниз. Как можно
 двигать курсор на selenium?

Как получить исходный код страницы после ajax используя selenium ?

$
0
0
Здравствуйте!
Как получить исходный код страницы понятно. Но многие страницы меняют его после выполнения js скриптов, часто после 
ajax.  Можно получить текущий исходный код используя средства разработчика в браузере.
Как получить исходный код страницы после выполнения скриптов используя selenium?

Selenium. Chromedriver. user-data-dir. Java. Как хранить Cookies?

$
0
0

Версия chrome: Версия 75.0.3770.100 (Официальная сборка), (64 бит)

 

Работаю с Chromedriver Headless. Мне нужно хранить где-то куки, что бы после закрытия браузера они не терялись. Пробовал использовать chrome с параметром user-data-dir. Все вроде нормально, создает файлы с настройками и куками в указанной папке и пока сервер работает он берет оттуда куки и записывает их. Но после перезагрузки драйвера он перезаписывает файлы и уже не видит старые куки и создает новые. 

 

 

 

Для проверки создал на локальном сервере вот такой скрипт ( http://test-cookies.local/test.php )

<?php setcookie ("TestCookie", 'COOKIES',time()+3600); ?>
<title>КУКИ : <?php print $_COOKIE['TestCookie']; ?> </title>

Выполняю в selenium (java) вот такой код и вижу что куки он не загружает после перезагрузки

System.setProperty("webdriver.chrome.driver", "drivers\\chromedriver.exe");

ChromeOptions options = new ChromeOptions();

options.addArguments("--user-data-dir=c:\\Users\\lexa\\IdeaProjects\\project\\user1\\");

options.setHeadless(true);

WebDriver driver = new ChromeDriver(options);

driver.get("http://test-cookies.local/test.php");

System.out.println(driver.getTitle());

driver.quit();

Подскажите, может есть какие-нибудь другие решения, что бы куки сохранялись или может я что то не так делаю?

 

 

 

 

как работает getPageSource в selenium ide?

$
0
0
Здравствуйте!
Как получить исходный код страницы понятно. Но многие страницы меняют его после выполнения js скриптов, часто после 
ajax.  D selenium команда getPageSource в некоторых драйверах дает загруженный еод а некоторые полсе изменения 
скриптами. Знаетет ли вы как getPageSource работает в selenium ide?

C# Не удается добавить расширения для Mozilla Firefox

$
0
0

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

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

$
0
0

На странице 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();
тоже не помогло.
В таком случае никаких ошибок не появляется, но и с элементами ничего не происходит, не удаляется вообще ни первый ни второй пункт.
 

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

 

Viewing all 702 articles
Browse latest View live