【问题标题】:Python Selenium Firefox new tab without CONTROL + clickPython Selenium Firefox 新标签没有 CONTROL + 单击
【发布时间】:2018-08-31 22:26:03
【问题描述】:

我想点击一个元素(由 xpath 找到),但如果我使用:

ActionChains(driver).key_down(Keys.CONTROL).move_to_element(myElement).click().key_up(Keys.CONTROL).perform()

->我得到一个新标签,但当前标签也重定向到页面

所以我需要一种方法来执行右键单击并选择“在新选项卡中打开”,但这对我不起作用。

我使用此代码,但进入 context_menu 后没有任何反应。

ActionChains(driver).context_click(myElement).send_keys(Keys.DOWN).send_keys(Keys.RETURN).perform()

另一种方法是使用滚轮按钮单击“myElement”,但我找不到单击方法。

谢谢。

(我不需要任何使用 Control + 鼠标单击的东西 :-))

【问题讨论】:

标签: python selenium firefox


【解决方案1】:

如果问题在于管理窗口/选项卡焦点,您可以像 this post 那样使用 window_handles 吗? 我不明白您是想控制上一个选项卡还是下一个选项卡。对于第一个选项卡,类似于

driver.switch_to_window(driver.window_handles[1])

编辑:试试这个(3个步骤,需要先获取目标,然后打开一个空白的新标签,然后到达目标)

from selenium.webdriver.common.keys import Keys
href = myElement.get_attribute("href")
current_page = driver.find_element_by_tag_name('body')
current_page.send_keys(Keys.CONTROL + 't') #open new tab
driver.switch_to_window(driver.window_handles[1])
driver.get(href)

【讨论】:

  • 抱歉,我没听懂您提到的“重定向”
  • 您是否尝试收集元素的href,然后打开一个新选项卡并手动设置url?
  • 所以,只是 Driver.get(href)... 但是打开新的干净选项卡的部分不起作用,所以 currentpage... 和 current_page.send... 不起作用。我得到:创建文件时出错:消息:浏览上下文已被丢弃
  • 我无法重现此错误,尽管我一直在两个不同版本的 python 和 firefox 上使用此代码。你正确抓取 current_page 了吗?
  • 我有:from selenium.webdriver.common.keys import Keys 如果“body”确实是标签名称,我也会正确抓取当前页面。我使用最新版本的 selenium,python 3.5.4 和 Firefox 59
猜你喜欢
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 2020-01-20
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
相关资源
最近更新 更多