繁体   English   中英

在Python Selenium中的xpath中使用变量时出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM