有没有一种方法可以将变量从循环传递到find_element_by_xpath正则表达式?

时间:2019-05-13 17:18:32

标签: python python-3.x selenium

我试图将字符串的值传递给find_element_by_Xpath()以获得搜索并匹配属性值的一部分。我该如何工作?

我已经在Python3.7和Selenium库上尝试过,找不到从循环传递值的方法。我正在尝试以下操作,但不起作用

datasets = [  'ds_pos_retail_outlet','ds_pos_retail_fullset', 'ds_pos_retail_ProfitCenter','ds_pos_retail_Section']

for x in datasets :

    refreshNow= driver.find_element_by_xpath('//button[starts-with(@aria-describedby, x) and @title="Refresh now"]')
    refreshNow.click()
    time.sleep(8)

我要选择并单击具有正则表达式匹配传递的属性值的节点

2 个答案:

答案 0 :(得分:0)

一种方法是使用format()

xpath = '//button[starts-with(@aria-describedby, {}) and @title="Refresh now"]'.format(x)
refreshNow= driver.find_element_by_xpath(xpath)

答案 1 :(得分:0)

除格式功能外,您还可以使用简单的字符串连接。

refreshNow = driver.find_element_by_xpath('//button[starts-with(@aria-describedby, ' + x + ') and @title="Refresh now"]')