【问题标题】:How to Send Keys before loading URL in Selenium Chromedriver?如何在 Selenium Chromedriver 中加载 URL 之前发送密钥?
【发布时间】:2017-01-16 01:20:38
【问题描述】:

有没有办法在 python 中使用 Selenium Chromedriver 加载 URL 之前发送 F12 键?任何建议都会对我的项目非常有帮助。

【问题讨论】:

  • 是的,我还发现即使我们打开 devtools,只要用 Chromedriver 完成一些操作,它就会关闭。无论如何感谢您的回复。我实际上是在尝试通过这种方法从 devtools 的 Network 选项卡下载 HAR,因为 BrowserMobProxy 与 QUIC、SPDY 不兼容,github.com/cyrus-and/chrome-har-capturer 有一点问题,我需要为未知持续时间的 Youtube 视频和 chrome-har-capturer 下载 HAR还没有那个功能。因此,如果有人知道如何执行此操作,请回复,因为我被困了很长时间。

标签: selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

您可以将击键发送到body 标签,无论您在哪个页面上。因此,只需在导航之前发送密钥(在 C# 中):

driver.FindElement(By.TagName("body")).SendKeys(Keys.F12);

另一种选择是使用Actions 类:

Actions action = new Actions(driver);
action.SendKeys(Keys.F12).Perform();

【讨论】:

  • SendKeys 不适用于我,例如使用 F 键或 ESC。它适用于字符串。
【解决方案2】:

Chromedriver 本身使用 devtools,因此在使用 selenium 时无法打开 devtools 本身。即使您确实使用 F12 打开它们,一旦您使用 selenium + chromedriver 执行操作,它们也会立即关闭

【讨论】:

    【解决方案3】:

    在打开 URL 之前发送密钥 f12 有另一种解决方案

    以这种方式使用Robot类(在Java中)-

    driver =new ChromeDriver();
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_F12); 
    robot.delay(2000);
    driver.get(your_Site_URL);
    

    它将发送F12 密钥,但开发人员工具将在下一页访问时关闭。

    如果您想保持开发者工具保持打开状态,这是不可能的 供参考see this

    【讨论】:

      猜你喜欢
      • 2023-03-07
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2019-10-13
      • 2021-04-21
      • 1970-01-01
      相关资源
      最近更新 更多