【问题标题】:How to close browser popup in robot framework?如何在机器人框架中关闭浏览器弹出窗口?
【发布时间】:2017-08-22 13:46:37
【问题描述】:

在 Chrome 浏览器中登录后,我会从浏览器中弹出保存密码。我想处理该弹出窗口并想使用 Robot Framework 关闭它 Browse popup window 谢谢

【问题讨论】:

    标签: google-chrome robotframework


    【解决方案1】:

    这个问题之前已经用纯 Python 上下文提出过并得到了回答。这个答案在这个SO post 上继续,用于一个工作机器人示例。

    您看到的弹出窗口是由 Chrome 本身生成的。这不是 HTML 警报。由于这个原因,Selenium2Library 关键字都不会对其产生任何影响。也不会设置 cookie 或 javascript。

    可以使用chrome://settings 链接手动设置这些设置。转到高级设置,然后向下滚动到密码和表单。取消勾选第二项,这将阻止弹出。

    要在 Robot Framework 中自动执行相同的操作,需要使用其他首选项启动 WebDriver:

     Chrome With Preferences
        ${chrome_options} =     Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    
        ${prefs}    Create Dictionary   credentials_enable_service=${false}  
    
        Call Method    ${chrome_options}    add_experimental_option    prefs    ${prefs}
        Call Method    ${chrome_options}    add_argument    --disable-infobars 
    
        Create WebDriver    Chrome    chrome_options=${chrome_options}
    
        Go To    https://secure.url.com
    

    这里的关键是credentials_enable_service=${false},重要的是使用${false}而不是false,因为后者被解释为字符串,然后作为“false”添加到Chrome " 而不是正确的值false

    第二项是首选项不是添加为参数,而是通过将dictionary 分配给ChromeOptions() 对象的prefs 属性,如下所示:add_experimental_option prefs ${prefs}

    【讨论】:

      【解决方案2】:

      说实话,我认为这不是真的(因为它是浏览器的属性。)您对此有疑问吗?您唯一可以忽略的是 javascript alert,可能最好的处理方法是:

      ${alert} =    Get Alert Message    dismiss=${dismiss}
      

      我在使用运行关键字和忽略错误的测试拆解中有这个,它使我能够获取可选的 js 警报内容并进行调试(也可以关闭它,因为可以执行套件的其余部分。)

      【讨论】:

        【解决方案3】:

        三种方法来做到这一点。

        1) 很多时候,一旦弹出窗口出现在屏幕上并消失,就会设置一个 cookie,您可以在开发人员控制台-> 应用程序中查看该 cookie。如果您使用 Add Cookie 关键字设置此 cookie 的值。弹出窗口不会出现。

        2) 如果首先不起作用,则打开开发者工具并从开发者工具 -> 应用程序监视本地商店并关闭弹出窗口。你会注意到一些带有值的变量存储在本地存储中。您可以使用脚本设置该值,并且在执行变量时不会看到弹出窗口。

        3) 如果 first 和 second 不起作用,则弹出窗口很可能与 javascript 变量相关联。使用 Execute Javascript 关键字设置 java 脚本变量,您的问题必须得到解决。

        与您的开发团队交谈,看看哪种方式适合您。

        【讨论】:

          猜你喜欢
          • 2017-11-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-09
          相关资源
          最近更新 更多