首页 > 解决方案 > Selenium:错误选择动态选择的选项

问题描述

我在 python 中使用 selenium。我不知道为什么当我尝试动态选择一个选项时出现错误。这些是我的代码:

select_season = Select(driver.find_element_by_name("_ctl0:temporadasDropDownList"))
select_season.select_by_value("2015")

这些代码工作正常,但如果我通过从变量或列表中获取它的值更改“2015”,则会出现此错误:

回溯(最后一次调用):文件“/home/josecarlos/Workspace/python/europa/main.py”,第 104 行,在 main() 文件“/home/josecarlos/Workspace/python/europa/main.py”中,第 94 行,主 FEBDocument(data) 文件“/home/josecarlos/Workspace/python/europa/parsers/feb/document/bx_document.py”,第 21 行,init self.load_all_competitions(驱动程序,数据)文件“/home/josecarlos/Workspace/python/europa/parsers/feb/document/bx_document.py”,第 114 行,在 load_all_competitions select_season.select_by_value(data[“season”])文件中“ /home/josecarlos/Workspace/python/europa/venv/lib/python3.5/site-packages/selenium/webdriver/support/select.py”,第 79 行,在 select_by_value opts = self._el.find_elements(By.CSS_SELECTOR ,css)文件“/home/josecarlos/Workspace/python/europa/venv/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py”,第685行,在find_elements {“使用”: , "value": value})['value'] 文件 "/home/josecarlos/Workspace/python/europa/venv/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py", 行633,在 _execute return self._parent.execute(command, params) 文件“/home/josecarlos/Workspace/python/europa/venv/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py”,行321,在执行self.error_handler.check_response(response)文件“/home/josecarlos/Workspace/python/europa/venv/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py”,第242行,在 check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "option[value ="2015 "]" is invalid: SyntaxError: 'option[value ="2015 "] ' 不是有效的选择器5/site-packages/selenium/webdriver/remote/webdriver.py”,第321行,在执行self.error_handler.check_response(response)文件“/home/josecarlos/Workspace/python/europa/venv/lib/python3.5 /site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "option[value=" 2015 "]" 无效:SyntaxError: 'option[value ="2015 "]' 不是有效的选择器5/site-packages/selenium/webdriver/remote/webdriver.py”,第321行,在执行self.error_handler.check_response(response)文件“/home/josecarlos/Workspace/python/europa/venv/lib/python3.5 /site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "option[value=" 2015 "]" 无效:SyntaxError: 'option[value ="2015 "]' 不是有效的选择器在 check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "option[value ="2015 "]" is invalid: SyntaxError: 'option[value ="2015 "]'不是有效的选择器在 check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.InvalidSelectorException: Message: Given css selector expression "option[value ="2015 "]" is invalid: SyntaxError: 'option[value ="2015 "]'不是有效的选择器

我得到这个错误的代码是:

select_season = Select(driver.find_element_by_name("_ctl0:temporadasDropDownList"))
select_season.select_by_value(data["season"])

如何使用 python 和 selenium 从选择中动态选择一个选项?

标签: pythonpython-3.xseleniumselenium-webdriver

解决方案


推荐阅读