我一直在弄清楚如何获取变量以使用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]"}
值的单引号与您的编码方式无关。试试:
driver.find_element_by_xpath("//option[@value='" + state + "']").click()
如果您仍想使用单引号,则也可以尝试此答案。检查是否有帮助:
driver.find_element_by_xpath('//option[@value=\'{State_Name}\']'.format(State_Name=State)).click()
您可以在函数中传递“状态”作为参数。