gpt4 book ai didi

selenium - 如何在Selenium Webdriver(Python)中使用变量名存储包含特定文本的元素来存储字符串?

转载 作者:行者123 更新时间:2023-12-03 17:27:48 24 4
gpt4 key购买 nike

我正在使用以下行选择一个元素来查找网页上的特定文本:

driver.find_element_by_xpath("//*[contains(text(), 'my string')]")


这很好。

但是,如果将字符串分配给变量并尝试在该行中使用该变量(如下所示),则会出现异常,指出该表达式不合法。

varname = 'my string'
driver.find_element_by_xpath("//*[contains(text(), varname)]")


我想对少数几个字符串重复此搜索多次,而不必一遍又一遍地写这行。我的最终目标是要列出要迭代的字符串列表,如下所示:

mystrings = ('my first string','my second string','my third string')
for x in mystrings:
driver.find_element_by_xpath("//*[contains(text(), x)]")

最佳答案

因为它实际上是在寻找文本“ varname”。您需要设置文本格式以传递变量:

varname = 'my string'
driver.find_element_by_xpath("//*[contains(text(), '%s')]" % varname) # option 1
driver.find_element_by_xpath("//*[contains(text(), '{0}')]".format(varname)) # option 2


这两个选项都将起作用,仅取决于您希望格式化字符串的方式。

对于列表类似:

mystrings = ['my first string','my second string','my third string']
for x in mystrings:
driver.find_element_by_xpath("//*[contains(text(), '%s')]" % x)


编辑:忘记包括单引号。代码已更新。

关于selenium - 如何在Selenium Webdriver(Python)中使用变量名存储包含特定文本的元素来存储字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42637260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com