【发布时间】:2019-12-11 00:45:43
【问题描述】:
我正在尝试使用 Python selenium 进行网页抓取。我收到以下错误:消息:元素不可交互(会话信息:chrome=78.0.3904.108)我正在尝试通过 id、值或文本访问选项元素。它给了我这个错误。我正在使用 Python-3。有人可以帮助解释我哪里出错了。我使用 xpath 使用 select 标记,还尝试了 css_selector。选择标签被选中,我可以得到选择标签的输出。这是我的代码以便更好地理解: 代码 1:-
path = r'D:\chromedriver_win32\chromedriver.exe'
browser = webdriver.Chrome(executable_path = path)
website = browser.get("https://publicplansdata.org/resources/download-avs-cafrs/")
el = browser.find_element_by_xpath('//*[@id="ppd-download-state"]/select')
for option in el.find_elements_by_tag_name('option'):
if option.text != None:
option.click()
break
块引用
代码 2:-
select_element = Select(browser.find_element_by_xpath('//*[@id="ppd-download-state"]/select'))
# this will print out strings available for selection on select_element, used in visible text below
print(o.value for o in select_element.options)
select_element.select_by_value('AK')
与问题相同: Python selenium select element from drop down. Element Not Visible Exception 但错误是不同的。尝试了cmets中的方法
【问题讨论】:
-
试试这个
el = browser.find_element_by_xpath("//div[@id='ppd-report-downloads']/div[@id='ppd-download-state']/select") -
您是否尝试过首先单击包含文本状态右侧向下箭头的任何元素?我猜这会使您的选择元素可见。刚刚检查了您的网站,您可以先点击
"//span[text()='State']"以使您的选择下拉菜单可见。 -
啊!该页面可能使用引导程序或类似的东西。选择有 style=display:none。显示状态的下拉菜单位于 UL 元素中:ul.selectBox-dropdown-menu.selectBox-options。
标签: python-3.x selenium