在xpath中使用来自regex的字符串变量包含函数

时间:2019-07-01 05:53:01

标签: python-3.x selenium xpath

我是Selenium和Python的新手。我使用以下正则表达式来匹配网页中的+ ve 4位数字。如何使用str函数将其转换为字符串后,如何在xpath中使用正则表达式?

假设我有一个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?

没有其他可以使用的元素,例如id或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 :(得分:0)

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