在Python Selenium中使用变量和后续兄弟的正确语法是什么?

时间:2017-08-15 16:57:12

标签: python-3.x selenium-webdriver

我使用的是Python和Selenium Webdriver。

我有以下代码按预期工作:

driver.find_element_by_xpath('//p[text()="text"]/../following-sibling::td/div/div/table/tbody/tr/td/a[@class ="class_name"]')

我想改变上面的"文字"变量,类似于下面:

driver.find_element_by_xpath('//p[text()="%s"] % variable_name/../following-sibling::td/div/div/table/tbody/tr/td/a[@class ="class_name"]')

这不起作用,因为它不是有效的XPath表达。有人可以帮忙正确编码吗?

编辑: 此外,如果有一种方法可以在后续兄弟中搜索也很有用的文本。类似于:

 driver.find_element_by_xpath('//p[text()="%s"] % variable_name/../following-sibling:[div@text()= "text"]')

1 个答案:

答案 0 :(得分:2)

当您撰写'//p[text()="%s"] % variable_name/../following-sibling::td/div/div/table/tbody/tr/td/a[@class ="class_name"]'时,您创建的字符串字面上包含 %s% variable_name%运算符和要替换的变量位于字符串文字之外:

'//p[text()="%s"]/../following-sibling::td/div/div/table/tbody/tr/td/a[@class ="class_name"]' % variable_name