我尝试在本地运行chrome扩展的测试。
我有selenium服务器(v.3.141.59)。
我有chromedriver(2.44节)
我有chrome浏览器(v.70.0.3538.110)
和selenium-webDrive npm包(v.^4.0.0-alpha.1)
我的NodeJs代码成功创建新的chrome会话
this._driver = new Builder()
.forBrowser('chrome')
.usingServer('http://localhost:4444/wd/hub')
.setChromeOptions(new ChromeOptions()
.addExtensions(config.extensionPath)
//.addExtensions(buffer.toString('base64'))
//.addArguments(`--load-extension=c:\path\to\extension`)
.build();
但是
1) 当我以独立服务器的形式运行selenium server时,我的扩展成功安装,一切正常
java -jar selenium-server.jar -role standalone
2) 当我将selenium server作为中心运行,并将selenium server的另一个实例作为节点运行时,新的chrome会话在未安装扩展的情况下创建。
java -jar selenium-server.jar -role hub
java -Dwebdriver.chrome.driver=C:\path\to\chromedriver -jar selenium-server.jar -port 4445 -hub http://localhost:4444 -role node -browser browserName=chrome
加载扩展的任何注释变体都会给出相同的结果。
节点和独立运行类型(在扩展加载的上下文中)之间有什么区别吗?还是我的错在哪里?
我会很高兴得到任何帮助!
最近想出了解决方案,它相当粗糙。selenium的github中有一条关于这一点的线索,但目前无法回忆。解决方案是在使用远程集线器时,将chrome选项功能键传递为“goog:chromeOptions”。
例子:
setup() {
const options = new Options();
options.addArguments("disable-infobars");
options.addArguments("start-maximized");
options.addExtensions(this.encode(*extension*.crx'));
const caps = new Capabilities();
caps.set("browserName", 'chrome');
//seems like neccessary hack for js bindings
caps.set('goog:chromeOptions', options['options_']);
let driver = await new Builder()
.forBrowser('chrome')
.withCapabilities(caps)
.usingServer(*url*)
.build();
}
encode(file) {
var stream = require('fs').readFileSync(file);
return Buffer.from(stream).toString('base64');
}
我查了一下,我怎么能默默地运行硒:在这里找到了下一个伟大的答案 我正在尝试让selenium正常运行,直到一些操作完成,然后在后台运行它。 有可能吗? 高级Oz中的thanx
我的目标是使用硒为Python自动在线账单支付。 使用以下代码使用 Web 驱动程序登录成功: 登录后,一个新的页面加载,我的下一步是点击一个链接。代码: 什么也没发生。没有导航到该法案 但仍然没有。我还应该尝试其他什么? 错误: Traceback(最近调用的最后一次):File"/home/队长/. PyCharmEdu30/config/划痕/scratch_1.py",第12行,在clic
正在研究尝试理解显式等待的方法。 所以单选按钮被点击后,输入形式发生了变化,所以我把给它一个时间元素出现,否则会出错“元素不可见......”。所以我认为现在是理解显式等待的好时机,因为我需要等到元素出现。 但出现错误“Selenium::WebDriver::error::ElementNotVisibleError:Element当前不可见,因此可能无法与之交互”。为什么这段代码不等到元素出现
我正在使用selenium webdriver并创建一个chrome驱动程序实例。当我尝试向下滚动和向上滚动时,我得到以下错误信息。此外,我可以看到一个错误信息“Chrome正在由一个自动化软件控制”。看到这个错误很烦人,虽然我无法在Chrome浏览器中更改任何设置来实现自动化。 错误信息: /System/Library/Frameworks/python . framework/Version
我使用appium和java自动化Android应用程序。作为一个初学者,我想知道TestNG和网格之间的区别。冲浪,但不能得到答案。
我试图通过TestContainer运行Selenium测试。 这是由于 但是,如果我直接从一个测试调用它,它就会通过并且找到方法,例如。 但是,如果通过类调用此方法,则会抛出 这是我的测试方法: } 此测试从 其中抛出 这是一个演示项目,我已设置尝试和重新创建的问题,这里是我的整个文件: