Я пишу некоторые тесты браузера с осколком и иметь страницу с четко определенные строки, содержащие их собственные названия, кнопки и т.д. Что-то вроде:XPath для получения кнопки в строке
В моем конкретном случай, можно получить одну строку следующим образом:
row = lambda title: browser.find_by_xpath("//div[@class='my-row'][contains(., '{0}')]".format(title))
row1 = row('Row 1')
row2 = row('Row 2')
Затем с этим Lamba:
button = lambda elmt, text: elmt.find_by_xpath("//a[@class='btn'][contains(.,'{0}')]".format(text))
я мог оттачиваю на правильной регулярной кнопке или что-то вроде:
assert button(row1, 'Special button')
assert not button(row2, 'Special button')
Но когда я называю кнопку лямбду, он возвращает кнопку из других строк.
С моей точки зрения, поиск по xpath через эту lamba говорит: «Начиная с elmt, ищите кнопки , вложенные в elmt, которые содержат данный текст». Так как я получаю материал из других строк, не вложенных в текущий, хотя, что мне здесь не хватает?
Что не так с моим xpath?