google chrome devtools 如何在使用Selenium自动执行测试时处理调试器中暂停的覆盖,google-chrome-devtools,javascript,selenium,debugging,google-chrome-devtools,breakpoints,google Chrome Devtools,Javascript,Selenium,Debugging,Google Chrome Devtools,Breakpoints" /> google chrome devtools 如何在使用Selenium自动执行测试时处理调试器中暂停的覆盖,google-chrome-devtools,javascript,selenium,debugging,google-chrome-devtools,breakpoints,google Chrome Devtools,Javascript,Selenium,Debugging,Google Chrome Devtools,Breakpoints" />

google chrome devtools 如何在使用Selenium自动执行测试时处理调试器中暂停的覆盖

google chrome devtools 如何在使用Selenium自动执行测试时处理调试器中暂停的覆盖,google-chrome-devtools,javascript,selenium,debugging,google-chrome-devtools,breakpoints,google Chrome Devtools,Javascript,Selenium,Debugging,Google Chrome Devtools,Breakpoints,每次我尝试访问并打开此文件时,我都无法通过检查器检查任何元素,因为UI有一个覆盖,并且在调试器中暂停了一条消息 要检查“源”选项卡,请在“事件侦听器断点”面板下检查是否在“鼠标”下设置了任何断点。我已交叉检查是否未设置源->事件列表断点 检查小八角形停止/暂停标志(位于铬“源”的左下方)是否为彩色(蓝色或紫色)。我不知道为什么我需要为选定的网站做额外的 快照: 第二部分讲述了手动步骤 所有的解决方案似乎都指向手动过程。但在我看来,这个问题似乎是无法getPageSource()的根本原因 代码

每次我尝试访问并打开此文件时,我都无法通过检查器检查任何元素,因为UI有一个覆盖,并且在调试器中暂停了一条消息

要检查“源”选项卡,请在“事件侦听器断点”面板下检查是否在“鼠标”下设置了任何断点。我已交叉检查是否未设置
->
事件列表断点

检查小八角形停止/暂停标志(位于铬“源”的左下方)是否为彩色(蓝色或紫色)。我不知道为什么我需要为选定的网站做额外的

快照:

第二部分讲述了手动步骤

所有的解决方案似乎都指向手动过程。但在我看来,这个问题似乎是无法
getPageSource()
的根本原因

代码试用:

System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions");
WebDriver driver = new ChromeDriver(options);
driver.get("http://rd.huangpuqu.sh.cn/website/html/shprd/shprd_tpxw/List/list_0.htm");
输出:Chrome会打开,但不会导航到url

因此,我的问题是:

  • 在哪种情况下会发生调试器中暂停的
    错误
  • 这是前端开发的错误吗
  • 在通过Selenium进行自动化测试期间,如何绕过此错误
      • 在哪些情况下会发生调试器中暂停的
        错误

        在开发工具打开的情况下随时访问此页面。
        调试器行将暂停javascript执行,但如果开发工具关闭,浏览器将忽略它

      • 这是前端开发的错误吗

        在这种情况下,他们故意把你挡在外面。此功能的目的是暂停执行,然后在恢复所需时间超过100毫秒时将浏览器重定向到其他页面。我推测,这是为了干扰像selenium这样的自动爬虫程序,因为普通用户不会受到影响,而人类开发人员可以绕过它

      • 在通过Selenium进行自动化测试期间,如何绕过此错误

      我的第一个建议是尝试无头运行Selenium,如果可以的话。如果没有,请使用热键继续执行(F8)。您可以使用任何方法生成按键;在java.awt包中,它将如下所示:

      Robot robot = null;
      try
      {
         robot = new Robot();
      }
      catch(Exception e)
      {
         //handle failure
      }
      robot.keyPress(KeyEvent.VK_F8);
      
      请记住,您必须在100毫秒内触发此事件,因此请使用您喜欢的任何逻辑来检测该块并快速响应。如果你只是想快速和肮脏的东西,我会让它垃圾邮件F8键每50毫秒一段时间,直到你确定页面已加载

      编辑:在进一步调查中,此页面非常混乱,对任何打开开发工具的人都怀有敌意。触发
      调试器的函数不是一个而是几个
      • 在哪些情况下会发生调试器中暂停的
        错误

        在开发工具打开的情况下随时访问此页面。
        调试器行将暂停javascript执行,但如果开发工具关闭,浏览器将忽略它

      • 这是前端开发的错误吗

        在这种情况下,他们故意把你挡在外面。此功能的目的是暂停执行,然后在恢复所需时间超过100毫秒时将浏览器重定向到其他页面。我推测,这是为了干扰像selenium这样的自动爬虫程序,因为普通用户不会受到影响,而人类开发人员可以绕过它

      • 在通过Selenium进行自动化测试期间,如何绕过此错误

      我的第一个建议是尝试无头运行Selenium,如果可以的话。如果没有,请使用热键继续执行(F8)。您可以使用任何方法生成按键;在java.awt包中,它将如下所示:

      Robot robot = null;
      try
      {
         robot = new Robot();
      }
      catch(Exception e)
      {
         //handle failure
      }
      robot.keyPress(KeyEvent.VK_F8);
      
      请记住,您必须在100毫秒内触发此事件,因此请使用您喜欢的任何逻辑来检测该块并快速响应。如果你只是想快速和肮脏的东西,我会让它垃圾邮件F8键每50毫秒一段时间,直到你确定页面已加载


      编辑:在进一步调查中,此页面非常混乱,对任何打开开发工具的人都怀有敌意。触发
      调试器的函数不是一个而是几个我使用了
      --headless
      。。。这可能与配置文件有关…故意添加了
      暂停
      ,以防止您在打开Devtool后分析页面中的脚本。这不是一个错误,也不会影响通过Selenium执行。请注意,页面中的脚本在加载Selenium时重定向到不同的内容,最有可能是通过指纹。我使用了
      --headless
      。。。这可能与配置文件有关…故意添加了
      暂停
      ,以防止您在打开Devtool后分析页面中的脚本。这不是一个错误,也不会影响通过Selenium执行。请注意,页面中的脚本在加载Selenium时会重定向到不同的内容,很可能是通过指纹。如果您的答案不起作用,可以复制/粘贴完整代码吗?@sgrillon=>为什么您认为这个答案不起作用?按键事件f8将不会发送到使用f8的dev tab?,代码
      http://rd.huangpuqu.sh.cn/website/html/shprd/shprd_tpxw/List/l