在 Selenium Python 中单击 div 下拉列表中的标签,没有任何效果
Clicking a tag in div dropdown in Selenium Python, nothing is working
我正在尝试单击 div 下拉列表中的标签。我已经尝试了 4 个代码选项,但没有任何效果。我知道 XPATH 是正确的。我有隐式睡眠。
1.) browser.find_element_by_xpath(OrderOrderTypeXPATH).send_keys('/n')
2.)
browser.execute_script('arguments[0].click()',
browser.find_element_by_xpath(OrderTypeXPATH))
3.)
ActionChains(browser).move_to_element(browser.find_element_by_xpath(OrderTypeXPATH)).click().perform()
4.)
browser.find_element_by_xpath(OrderTypeXPATH).click()
我的 div 代码如下所示:
<div class="dropdown"> <!-- hidden before, clicked hamburger menu -->
<a href="#" class="active menu-option">Order 1</a>
<a href="#" class="menu-option">Order 2</a> <!-- want to click this! -->
<a href="#" class="menu-option">Order 3</a>
<a href="#" class="menu-option">Order 4</a>
</div>
没有错误信息。只要不点击它,下拉菜单就会消失。
XPATH 是正确的,因为 sendKeys('\n') 输出了一个大纲。
诱导WebDriverWait
和element_to_be_clickable()
,先点击div元素,再点击下图想要的元素
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.dropdown"))).click()
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='dropdown']/a[text()='Order 2']"))).click()
注意: 您需要导入以下内容。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
已编辑:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver=webdriver.Chrome()
driver.get("https://robinhood.com/stocks/AMD")
driver.maximize_window()
element=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//h3[contains(.,'Buy AMD')]/following::*[name()='svg'][2]"))).click()
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//h3[contains(.,'Order Type')]/following::div/a[text()='Limit Order']"))).click()
我正在尝试单击 div 下拉列表中的标签。我已经尝试了 4 个代码选项,但没有任何效果。我知道 XPATH 是正确的。我有隐式睡眠。
1.) browser.find_element_by_xpath(OrderOrderTypeXPATH).send_keys('/n')
2.)
browser.execute_script('arguments[0].click()',
browser.find_element_by_xpath(OrderTypeXPATH))
3.)
ActionChains(browser).move_to_element(browser.find_element_by_xpath(OrderTypeXPATH)).click().perform()
4.)
browser.find_element_by_xpath(OrderTypeXPATH).click()
我的 div 代码如下所示:
<div class="dropdown"> <!-- hidden before, clicked hamburger menu -->
<a href="#" class="active menu-option">Order 1</a>
<a href="#" class="menu-option">Order 2</a> <!-- want to click this! -->
<a href="#" class="menu-option">Order 3</a>
<a href="#" class="menu-option">Order 4</a>
</div>
没有错误信息。只要不点击它,下拉菜单就会消失。
XPATH 是正确的,因为 sendKeys('\n') 输出了一个大纲。
诱导WebDriverWait
和element_to_be_clickable()
,先点击div元素,再点击下图想要的元素
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div.dropdown"))).click()
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='dropdown']/a[text()='Order 2']"))).click()
注意: 您需要导入以下内容。
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
已编辑:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver=webdriver.Chrome()
driver.get("https://robinhood.com/stocks/AMD")
driver.maximize_window()
element=WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//h3[contains(.,'Buy AMD')]/following::*[name()='svg'][2]"))).click()
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//h3[contains(.,'Order Type')]/following::div/a[text()='Limit Order']"))).click()