解决方法"这种类型的文件可能会损害您的计算机"使用机器人框架

时间:2018-02-08 21:31:51

标签: python selenium-chromedriver robotframework

我有一个测试,使用chrome来使用RBF和selenium下载exe文件,然后使用RBF和winium运行exe。

我可以在修改chrome的选项时使用python和selenium来实现 enter image description here

但使用'创建Webdriver' KW,我的测试运行得太快,我对元素的断言一个接一个地失败。

通常我使用的是“开放浏览器”#39;具有超时和隐含等待和速度的KW在99%的时间内都像魅力一样。

有没有办法在不使用RBF浏览保护的情况下启动webdriver?

1 个答案:

答案 0 :(得分:0)

好的,经过一些研究和几种方法后,我找到了解决这个问题的有效方法。 关键是使用Webdriver ChromeOptions禁用安全浏览。 使用纯python非常直接:

def customChromeOptions(self):
    self.chrome_options = webdriver.ChromeOptions()
    self.chrome_options.add_argument("--start-maximized")
    self.chrome_options.add_experimental_option("prefs", {'safebrowsing.enabled': 'false'})
    return self.chrome_options

driver = webdriver.Chrome(desired_capabilities=customChromeOptions().to_capabilities())

在机器人框架上实现有点棘手(特别是因为尝试添加使用SeleniumLibrary的自定义机器人库并不顺利)但最终让它起作用:

*** Test Cases ***
Test 1
    Create Chrome Webdriver
    Go To    ${link to file download}

*** Keywords ***
Create Chrome Webdriver
    ${CHROME_OPTIONS}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys, selenium.webdriver
    ${PREFS}    Create Dictionary    download.default_directory=${TEMP_DOWNLOADS_DIR}    safebrowsing.enabled=false
    Call Method    ${CHROME_OPTIONS}    add_argument    --start-maximized
    Call Method    ${CHROME_OPTIONS}    add_experimental_option    prefs    ${PREFS}
    Create Webdriver    Chrome    chrome_options=${CHROME_OPTIONS}
    Set Selenium Settings

Set Selenium Settings
    Set Selenium Speed    0.5
    Set Selenium Timeout    5
    Set Selenium Implicit Wait    30