我正在尝试运行一个简单的python程序来输入搜索键,然后使用硒来自Google的“我感到幸运”在新标签中打开该链接。
问题是context_click()
方法没有执行任何操作。它甚至没有显示任何错误。 ActionsChains的click()
方法也不起作用(没有错误但没有效果)。但是简单的webelement.click()
确实可以。
代码:
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
opts = Options()
driver=webdriver.Chrome(r"chromedriver")
opts.add_argument('--headless')
driver.get("https://www.google.com/")
act = ActionChains(driver)
driver.find_element_by_id('lst-ib').send_keys("some_search_word_that_doesnt_have_suggestions")
webelem=driver.find_element_by_name('btnI')
act.context_click(webelem)
我也一直试图使用opts.add_argument('-headless')在无头模式下运行此命令,但即使这样也根本不起作用(没有错误,但仍然弹出窗口)。(对此的快速修复表示赞赏)
答案 0 :(得分:0)
您需要在代码末尾添加以下行。
act.perform()
从文档https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains
当您调用perform()时,事件将按照排队的顺序触发。
请注意,如果您确实想单击按钮,请使用代码打开上下文菜单(右键单击):
act.click(webelem)