我能够在Java中完成以下工作:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);
driver.get("https://www.google.com");
现在,我正在使用Selenium2Library的Java端口来实现Robot Framework。 我怎样才能做与上面类似的事情? 我尝试过以下方法:
${chrome_options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
${chrome_capabilities}= Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME sys, selenium.webdriver
Call Method ${chrome_options} add_argument disable-extensions
Set To Dictionary ${chrome_capabilities} ChromeOptions.CAPABILITY=${chrome_options}
Open Browser https://www.google.com Chrome None None desired_capabilities=${chrome_capabilities} None
每次打开浏览器时都会出现一个弹出窗口,这就是我需要禁用chromeOptions的原因。如上所述,我能够使用Java代码使弹出窗口消失。我对RF无法做同样的事情。
感谢您的帮助。
答案 0 :(得分:0)
将Chrome选项通过desiredCapabilities参数传递给Open Browser作为JSON字符串。如果在Java中创建功能对象,请使用toJson方法创建JSON对象。然后使用JSON对象上的getAsString方法获取字符串。然后将该字符串作为desiredCapabilities的值传递。因此,基本上您需要创建一个返回所需功能字符串的Java用户关键字。
# the below should return something similar to {'platform': 'ANY', 'browserName': 'chrome', 'version': '', 'chromeOptions': {'args': ['--disable-extensions'], 'extensions': []}, 'javascriptEnabled': True}
${desired caps} Get Capabilities # call custom keyword to get capabilities string
Open Browser https://stackoverflow.com gc desiredCapabilities=${desired caps}
public String getCapabilities() {}
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-extensions");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
return capabilities.toJson().getAsString();
}
答案 1 :(得分:-3)
而不是使用"打开浏览器"使用"创建Webdriver"关键字。