Python 如何单击使用Selenium隐藏的下拉菜单?
我试图单击下拉菜单,但由于它是隐藏的,我得到了错误:Python 如何单击使用Selenium隐藏的下拉菜单?,python,selenium,selenium-webdriver,xpath,webdriverwait,Python,Selenium,Selenium Webdriver,Xpath,Webdriverwait,我试图单击下拉菜单,但由于它是隐藏的,我得到了错误: could not be scrolled into view 我做了一些挖掘,我发现使用一些JavaScript可能会有所帮助,但我不确定如何在我的Python脚本中实现这一点 <div class="MuiSelect-root MuiSelect-select MuiSelect-selectMenu MuiSelect-outlined MuiInputBase-input MuiOutlinedInput-inpu
could not be scrolled into view
我做了一些挖掘,我发现使用一些JavaScript可能会有所帮助,但我不确定如何在我的Python脚本中实现这一点
<div class="MuiSelect-root MuiSelect-select MuiSelect-selectMenu MuiSelect-outlined MuiInputBase-input MuiOutlinedInput-input jss987" tabindex="0" role="button" aria-haspopup="listbox" aria-labelledby="input-label-idTeam1Desktop select-idTeam1Desktop" id="select-idTeam1Desktop"><span></span></div>
<input name="idTeam1Desktop" type="hidden" id="idTeam1Desktop" value="">
要单击下拉菜单并选择文本为MIL的菜单项,您需要将
元素归纳为可单击()
,并且您可以基于以下内容使用:
- 使用
:XPATH
driver.get('https://tradenba.com/trade-machine') WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='select-idTeam1Desktop']"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='MuiListItemText-root MuiListItemText-inset']/span/div/p[text()='MIL']"))).click()
- 注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
- 浏览器快照:
您可能想阅读本文。您想选择哪一项
MIL
或TOR
或BOS
?也许您可以将单击
操作发送到所选输入字段的父div。我在尝试您的方法时遇到此错误:“selenium.common.exceptions.StaleElementReferenceException:消息:的元素引用已过时;元素不再附加到DOM,它不在当前框架上下文中,或者文档已刷新“当我仅使用您的前两行代码运行脚本时,我注意到下拉菜单被选中并出现,但很快消失。对不起,我不确定您是否收到我以前的注释通知。到目前为止,我真的很感谢你的帮助@德班詹布
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC