Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Selenium не может найти столбец на чарте

webdriver
Теги: #<Tag:0x00007fedbb22c9b8>

(Denis Knox) #1

Добрый день!
Подскажите пожалуйста как решить такую проблему - есть чарты написанные на девэкспрессе
chart

Есть тест который открывает страницу с дешбордом и прокликивает все элементы

driver.findElement(By.xpath("/html/body/form/div[3]/div[2]/div[1]/div[1]/div/div[1]")).click();
Thread.sleep(1000);
driver.findElement(By.xpath("/html/body/form/div[3]/div[2]/div[1]/div[1]/div/div[1]")).click();
Thread.sleep(1000);

// Switch to a new window / Get the handle
String parentHandle = driver.getWindowHandle();
System.out.println(“Before click Category 1”);
// Click bar to open drilldown
//FSMSDashbopadObjects.NCbyReportCategoryBarCategory1(driver).click();
driver.findElement(By.xpath("/html/body/form/div[3]/div[2]/div[1]/div[2]/div/svg/g[8]/g/g/rect[1]")).click();
//*[@id=“auditsByBrandDiversey”]/svg/g[8]/g/g/rect[1]
System.out.println(“After click Category 1”);

Тест валится на строке при клике по столбцу чарта:

driver.findElement(By.xpath("/html/body/form/div[3]/div[2]/div[1]/div[2]/div/svg/g[8]/g/g/rect[1]")).click();

Selenium не может найти элемент. Я так подозреваю, что есть какие-то нюансы при работе с svg.
Подскажите пожалуйста как реализовать это?


(Максим Наталич) #2

Да, нюансы есть, попробуйте использовать css селектор.
Или если хочется xpath, то ответ здесь:

Немного советов, если вы этого не знали:
Ваши xpath-локаторы оставляют желать лучшего, так как у вас их писать не стоит:slightly_smiling_face:(можно сделать их более лаконичными)
И Thread.sleep лучше вообще не использовать, если это возможно.


(Denis Knox) #3

Css селектор помог, спасибо.