Нажатие элемента в селене по типу - PullRequest
0 голосов
/ 13 июня 2019

Элемент, который я пытаюсь щелкнуть, не имеет имени или идентификатора, и класс меняется каждый раз, когда вы обновляете страницу.Единственное, что соответствует в CSS - это значение.Как у вас селена щелкнуть элемент по значению?Он НЕ ДОЛЖЕН быть определенным по значению, я просто хочу щелкнуть элемент.

CSS:

<tr class="MuiTableRow-root-799 MuiTableRow-hover-801 _Table-cursor-794" val="4">

<tr class="MuiTableRow-root-799 MuiTableRow-hover-801 _Table-cursor-794" val="4">

driver.findElement(By.xpath("//option[@val='4']")).click()


driver.findElement(By.css('tr[val="4"]')).click()

Изменение формулировки val на значение ничего не даст.

Недостаточно представителей для публикации фотографии: https://i.imgur.com/dlDM57E.png

Ответы [ 3 ]

0 голосов
/ 13 июня 2019

Вы были почти там, в XPath вы можете выбрать атрибуты , используя @ в качестве префикса для имени атрибута:

//tr[@val='4']

Демо-версия:

enter image description here

Дополнительная информация: xpath - атрибут

0 голосов
/ 14 июня 2019

Попробуйте код ниже:

WebElement element = driver.findElement(By.xpath("//tr[starts-with(@class,'MuiTableRow')][@val='4']"));
    element.click();
0 голосов
/ 13 июня 2019

Если вы пытаетесь нажать на td в зависимости от значения, вам нужно использовать приведенный ниже xpath.

driver.findElement(By.xpath("(//tr[contains(@class,'MuiTableRow-root')])[1]//td[.='4']")).click()

Причина, по которой не работал value в вашем xpath, заключается в том, что с tr не связано свойство value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...