我提供的代码打开一个网站,并使用actionChains,在桌面上单击鼠标右键,弹出菜单。现在,我需要使用actionChains再做3件事。我需要将鼠标悬停在显示“保存页面WE”的项目上,然后在弹出的子菜单上单击一个项目,然后按Enter键。谁能告诉我该怎么做?谢谢
from selenium import webdriver
from selenium.webdriver import ActionChains
fp = webdriver.FirefoxProfile('/Users/Jake/AppData/Roaming/Mozilla/Firefox/Profiles/emjx467y.default-1524932841911')
driver = webdriv[enter link description here][1]er.Firefox(fp)
driver.get('http://www.tradingview.com/screener')
element = driver.find_element_by_link_text('Screener')
actionChains = ActionChains(driver)
actionChains.context_click(element).perform()
答案 0 :(得分:0)
使用以下行:actionChains.context_click(element).perform()
,您正在尝试右键单击 Screener 菜单。但是理想的行为应该是对其进行悬停,然后从3中选择一个选项。
我正在选择 Forex Screener ,您可以根据需要选择任意一个。
要悬停,您可以尝试以下代码:
actionChains.move_to_element(element).perform()
完整代码如下:
driver.get("http://www.tradingview.com/screener")
wait = WebDriverWait(driver,40)
driver.find_element_by_css_selector("span[class*='tv-header__dropdown-wrap--noarrow'] span[class$='lang-icon--current-lang']").click()
wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='English (UK)']/parent::a"))).click()
element = driver.find_element_by_link_text('Screener')
actionChains = ActionChains(driver)
actionChains.move_to_element(element).perform()
wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Forex Screener"))).click()
请确保导入以下内容:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
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.webdriver.common.action_chains import ActionChains