Selenium webdriver 机器人框架-根据需要传递颜色
我能够用Java完成以下工作:Selenium webdriver 机器人框架-根据需要传递颜色,selenium-webdriver,robotframework,selenium2library,Selenium Webdriver,Robotframework,Selenium2library,我能够用Java完成以下工作: DesiredCapabilities capabilities = DesiredCapabilities.chrome(); ChromeOptions options = new ChromeOptions(); options.addArguments("--disable-extensions"); capabilities.setCapability(ChromeOptions.CAPABILITY, options); ChromeDriver dr
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");
现在,我正在使用Selenium2库的Java端口作为Robot框架。
我怎样才能做与上面类似的事情?
我尝试了以下方法:
${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代码使弹出窗口消失。我就是不能用射频做同样的事情
感谢您的帮助。使用“创建Webdriver”关键字代替“打开浏览器”。使用“创建Webdriver”关键字代替“打开浏览器”。通过desiredCapabilities参数将Chrome选项作为JSON字符串传递给。如果在Java中创建capabilities对象,请使用该方法创建JSON对象。然后使用JSON对象上的方法获取字符串。然后将该字符串作为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();
}
通过desiredCapabilities参数将Chrome选项作为JSON字符串传递给。如果在Java中创建capabilities对象,请使用该方法创建JSON对象。然后使用JSON对象上的方法获取字符串。然后将该字符串作为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();
}
他们正在使用Selenium2库的Java端口。那里没有实现创建Webdriver。它们正在使用Selenium2库的Java端口。这里没有实现创建Webdriver。您好,谢谢您的回答。我试过了。但toJson()方法似乎不适用于DesiredCapabilities类。它只适用于ChromeOptions类。因此,我无法将功能作为字符串返回。我可以使用以下命令将desiredCapability作为字符串返回:return capabilities.getCapability(ChromeOptions.CAPABILITY).toString();。。。然而,我遇到了:“desiredCapabilities无效:desired_capabilities=org.openqa.selenium.chrome。ChromeOptions@13473b89.I能够以JSON格式将chromeOption作为所需功能传递。该值为'chromeOptions':u'org.openqa.selenium.chrome。ChromeOptions@13473b89'. 然而,我相信目前还不可能在Chrome中禁用扩展。这是因为Selenium2库的当前Java端口不导入ChromeOptions。有什么想法吗,伙计们?我不想推荐这种方法,但也许是最好的。看见较新版本的软件包名称错误。基本上,不需要通过编程方式生成功能字符串,只需创建您自己的webdriver实例并将其注入selenium2library。谢谢您的回答。对不起,我只是有点困惑。您可以使用RF with Selenium2 library打开浏览器,获取WebDriver实例并将其与自定义库一起使用。相反的可能吗?使用自定义库打开浏览器(这样我就可以设置chromeOptions),然后获取WebDriver实例并在RF with Selenium2Libary中使用它?您好,谢谢您的回答。我试过了。但toJson()方法似乎不适用于DesiredCapabilities类。它只适用于ChromeOptions类。因此,我无法将功能作为字符串返回。我可以使用以下命令将desiredCapability作为字符串返回:return capabilities.getCapability(ChromeOptions.CAPABILITY).toString();。。。然而,我遇到了:“desiredCapabilities无效:desired_capabilities=org.openqa.selenium.chrome。ChromeOptions@13473b89.I能够以JSON格式将chromeOption作为所需功能传递。该值为'chromeOptions':u'org.openqa.selenium.chrome。ChromeOptions@13473b89'. 然而,我相信目前还不可能在Chrome中禁用扩展。这是因为Selenium2库的当前Java端口不导入ChromeOptions。有什么想法吗,伙计们?我不想推荐这种方法,但也许是最好的。看见较新版本的软件包名称错误。基本上,不需要通过编程方式生成功能字符串,只需创建您自己的webdriver实例并将其注入selenium2library。谢谢您的回答。对不起,我只是有点困惑。您可以使用RF with Selenium2 library打开浏览器,获取WebDriver实例并将其与自定义库一起使用。相反的可能吗?使用您的自定义库打开浏览器(这样我就可以设置chromeOptions),然后获取WebDriver实例并在RF with Selenium2Libary中使用它?