在Python Selenium中的xpath中使用变量

问题描述 投票:11回答:2

我一直在弄清楚如何获取变量以使用Selenium时遇到了麻烦。这篇文章似乎有所帮助(Variable not working inside parenthesis),但我仍然无法使它正常工作。

当我使用实际值时,它起作用。在这种情况下,阿拉巴马州。我创建了一个名为state的变量,以便我可以调用在我的职能。我有13个州需要经历。

driver.find_element_by_xpath("//option[@value='AL-Alabama']").click()

这使用状态变量,并在查看错误消息时将变量值显示为AL-Alabama。所以看起来它引用了网页中的正确值。不知道我缺少什么或为什么它不起作用。任何指导将不胜感激。

driver.find_element_by_xpath('//option[@value=' + state + ']').click()
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//option[@value=AL-Alabama]"}
python variables selenium selenium-webdriver
2个回答
11
投票

值的单引号与您的编码方式无关。试试:

driver.find_element_by_xpath("//option[@value='" + state + "']").click()

0
投票

如果您仍想使用单引号,则也可以尝试此答案。检查是否有帮助:

driver.find_element_by_xpath('//option[@value=\'{State_Name}\']'.format(State_Name=State)).click()

您可以在函数中传递“状态”作为参数。

© www.soinside.com 2019 - 2024. All rights reserved.