我正在尝试在div下拉列表中单击一个标签。我尝试了4个代码选项,但没有任何效果。我知道XPATH是正确的。我有隐性的睡眠。
1。)function1
2。)
browser.find_element_by_xpath(OrderOrderTypeXPATH).send_keys('/n')
3。)
browser.execute_script('arguments[0].click()',
browser.find_element_by_xpath(OrderTypeXPATH))
4。)
ActionChains(browser).move_to_element(browser.find_element_by_xpath(OrderTypeXPATH)).click().perform()
我的div代码如下:
browser.find_element_by_xpath(OrderTypeXPATH).click()
没有错误消息。只是不单击它,下拉列表就消失了。
XPATH是正确的,因为sendKeys('\ n')输出轮廓。
答案 0 :(得分:0)
推导WebDriverWait
和element_to_be_clickable()
,然后先单击div元素,然后单击如下所示的desire元素。
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()