Проблема с css locator не магу найти кнопку

selenium
webdriver
python
Теги: #<Tag:0x00007fedb9c26f60> #<Tag:0x00007fedb9c26e20> #<Tag:0x00007fedb9c26ce0>

#1

Привет всем, есть проблема с css. Пытаюсь найти элемент и сделать по нему click().
Нахожу строку где мне нужна кнопка по которой мне надо сделать click()
div.row td:contains(Test Text test test test)
Потом пытаюсь написать путь кнопки в той же строке i[class=“fa fa-1-5x fa-edit primary”]
Но почему то FirePath не может нечего найти.


(Ярослав Бойко) #2

Попробуй xpath написать, может поможет!


(Aleksey Ilyenko) #3

Попробуйте:

  i.fa.fa-1-5x.fa-edit.primary

или

  i.fa.fa\-1\-5x.fa\-edit.primary

#4

Он находит их, но по отдельности,
если я пишу так:
div.row td:contains(Test Text test test test) i.fa.fa-1-5x.fa-edit.primary
Ничего не дает


(Aleksey Ilyenko) #5

Понял, пробуйте тогда xpath:

//div[@class='row']/td[contains(text(),'Test Text')]/i[@class='fa fa-1-5x fa-edit primary']

Или можно найти внешний элемент, а затем использовать

WebElement::findElement

чтобы найти элемент внутри него.


(Aleksey Ilyenko) #6

В Вашем примере не хватает кавычек:

div.row td:contains("Test Text test test test") i.fa.fa-1-5x.fa-edit.primary

#7

кавычки по ошибке не написал
все равно не работает пробую с xpath


#8

Получилось с xpath:
//*[text()=‘Test Text test test test’]/parent::tr/td/span/i[@class=‘fa fa-1-5x fa-edit primary’]


(Aleksey Ilyenko) #9

Если этот текст принадлежит ячейке, то xpath, по-идее, можно сократить:

//td[text()='Test Text test test test']//i[@class='fa fa-1-5x fa-edit primary']

#10

В этом случаи не дает