Найти класс span с селеновым питоном - PullRequest
0 голосов
/ 14 октября 2019

Я использую селен и Python, чтобы узнать об автоматизации веб-тестирования.

Я хочу нажать кнопку «Продолжить», пока в ней есть только span (я узнал, что использование id вместо span - этонамного проще) но в этом случае я хочу щелкнуть на промежутке.

Я использую следующий код:

driver.find_element_by_xpath("//span[contains(@class,'mdBtn01Txt')][contains(text(),'Continue')]").click()

вот элемент:

<div class="mdLYR12Inner01">
<a class="MdBtn01 mdBtn01 ExDisabled FnSubmitBtn" style="display:none" href="#" onclick="charge(this); return false;">
<span class="mdBtn01Inner">
<span class="mdBtn01Txt">
Continue <<<(I want to click this button)
</span>
</span>
</a>    
</div>
</footer>

Но я получил это сообщение ниже:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[contains(@class,'mdBtn01Txt')][contains(text(),'Continue')]"}

1 Ответ

3 голосов
/ 14 октября 2019

Не похоже на действительный xpath, правильный должен быть

//span[@class='mdBtn01Txt']

Вот правило для создания синтаксиса xpath для XPath:

XPath содержит путь к элементу, расположенному ввеб-страница. Стандартный синтаксис для создания XPath:

Xpath=//tagname[@attribute='value']

  • Tagname: Tagname конкретного узла.
  • @: Выбрать атрибут.
  • Атрибут: имя атрибута узла.
  • Значение: значение атрибута.
...