我想用selenium和python控制网页
menu = browser.find_element_by_css_selector(".nav")
hidden = browser.find_element_by_link_text('Soluton')
element = browser.find_element_by_xpath("//div[@class=\"two-columns\"]")
Option 1: ActionChains(browser).move_to_element(menu).click(hidden)
Option 2 : ActionChains(browser).move_to_element(element).click(hidden)
我想点击导航菜单下的“解决方案”按钮。
但是,解决方案位于导航菜单下。所以它是隐藏的。
所以,我输入以下代码;
ActionChains(browser).move_to_element(menu).click(hidden)
ActionChains(browser).move_to_element(element).click(hidden)
但是selenium没有发生任何事情,也没有给出任何错误信息。如何使用selenium单击导航菜单下的按钮?
谢谢
如果我已经了解你的Question
和你的Requirement
我们需要Mouse Hover
超过WebElement
文本为Actions
,其中2个选项弹出Request
和Solution
,你想在click()
上Solution
。为此,您可以使用以下代码块:
#import
from selenium.webdriver.common.action_chains import ActionChains
#code block
menu = driver.find_element_by_xpath("//a[@class='incident-action']/i[@class='icon-ellipsis-h']")
ActionChains(driver).move_to_element(menu).perform()
driver.find_element_by_xpath("//div[@class='action-list' and @id='header-actions-list']//a[@class='icon-arrow' and contains(text(),'Solution')]").click()
您可以尝试单击Actions
以使操作列表可见,然后单击所需的Solution
选项:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
actions = wait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, "Actions")))
actions.click()
solution = wait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, "Solution")))
solution.click()