Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何单击使用Selenium隐藏的下拉菜单?_Python_Selenium_Selenium Webdriver_Xpath_Webdriverwait - Fatal编程技术网

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