Использование строковой переменной из регулярного выражения в xpath содержит функцию - PullRequest
0 голосов
/ 01 июля 2019

Я новичок в Selenium и Python. У меня есть следующее регулярное выражение, которое я использую для сопоставления + ve 4 цифры на веб-странице. Как использовать выражение регулярного выражения в xpath содержит после преобразования его в строку с помощью функции str

Предположим, у меня есть xpath [@id="7719"]/td[2]/span

и с помощью регулярного выражения

number=re.findall(r'^\d{4}$',b)

для сопоставления с любой цифрой + ve 4

xpathв терминах селена можно выразить как

driver.find_element_by_xpath("""//*[contains(@id,'7718')]/td[2]/span""")

Как использовать число вместо 7718?

Нет других элементов, таких как селектор идентификаторов или CSS, которые мы можемЯ выбрал xpath и regex.Кроме того, поскольку мой Xpath является версией 1, он не принимает функцию совпадений, которую я уже пробовал

Я пытался делать driver.find_element_by_xpath("""// [contains(@id,'+ str(number)+')]/td[2]/span""") and driver.find_element_by_xpath("""// [contains(@id,'"+ str(number)+'")]/td[2]/span""")' Ожидаемый результат будет состоять в использовании любого положительного 4-значного числа с использованием регулярного выражения.

1 Ответ

0 голосов
/ 01 июля 2019

find_element_by_xpath метод принимает String так

Str1="// [contains(@id,"
Str2= "'{}'".format(str(1779))
Str3=")]/td[2]/span"
driver.find_element_by_xpath("//[contains(@id,"+ "'{}'".format(str(1779))+")]/td[2]/span")

Проверка ниже оператор выполнения генерируется как ожидалось enter image description here

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