[英]Error in using a variable in xpath in Python Selenium
我有一个xpath,可以很好地工作。 这是我的代码:
driver.find_element_by_xpath('//div[contains(text(), "aots-cm")]').click()
但是“ aots-cm”是一个硬编码值。 我想传递变量而不是硬编码值。
assetId = ("aots-cm")
my_var = ("'//div[contains(text()," + " " + '"' + assetId+ '"' + ")]'")
print (my_var)
=== > '//div[contains(text(), "aots-cm")]' ==> looks ok to me
driver.find_element_by_xpath(my_var).click()
给定xpath表达式“ // div [contains(text(),” aots-cm“)]'”“时出现错误消息:TypeError:无法将表达式转换为返回指定的类型。
在my_var
的字符串周围添加()
时,将其my_var
长度为1的元组,并且它必须是字符串。 我会那样做。
driver.find_element_by_xpath('//div[contains(text(), "{}")]'.format(assetID)).click()
@SuperStew的答案是最好的Python方式。 话虽如此,您也可以通过创建一个接受String
的函数来选择一种替代方法,该方法将从main()
函数传递,如下所示:
def click_me(myString):
driver.find_elements_by_xpath("//div[.='" + myString + "']").click()
现在,您可以随时随地使用所需的String
参数调用此函数,如下所示:
click_me("aots-cm")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.