webdriver-manager update第一次执行时,总是会看到以下错误
PS H:\> webdriver-manager update
webdriver-manager: using global installed version 12.1.2
[09:55:15] I/config_source - curl -oC:\Users\myusername\AppData\Roaming\npm\node_modules\webdriver-manager\selenium\standalone-response.xml https://selenium-release.storage.googleapis.com/
[09:55:15] I/config_source - curl -oC:\Users\myusername\AppData\Roaming\npm\node_modules\webdriver-manager\selenium\chrome-response.xml https://chromedriver.storage.googleapis.com/
[09:55:15] I/config_source - curl -oC:\Users\myusername\AppData\Roaming\npm\node_modules\webdriver-manager\selenium\gecko-response.json https://api.github.com/repos/mozilla/geckodriver/releases
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at TLSWrap.onread (net.js:622:25)
Run Code Online (Sandbox Code Playgroud)
但是,每当我再次运行它时,它总是成功执行。我仅在我目前的公司中经历过这种情况,而且我知道其他同事也会遇到这种情况,因此我认为它一定是代理人,但无法理解它以后如何成功通过。
我们将不胜感激任何关于如何更好地排除故障的解决方案或建议。
注意:我正在使用powershell执行命令
这是一个我无法找到确切来源的问题,希望基于用户以前的经验获得一些答案,主要是解释为什么某种方法无法解决。
我正在通过Protractor使用webdriver进行自动化,并且正在争论是否应在页面对象本身之外使页面元素可用。经过研究,人们似乎采取了几种不同的方法,但我无法完全掌握每种方法的长期含义。
我已经看到页面对象模型的以下不同实现:
这是我最不喜欢的方法,因为这意味着在测试中实际上已识别出元素。设置这似乎是一个糟糕的标准,因为它可能会鼓励自动化人员直接在应用程序中使用新的定位器,而不是页面对象。同样,在初始化PO时,不能直接设置任何需要动态信息的参数,需要进一步编辑。
pageobject.js
export default class HomePage {
constructor() {
this.passwordField = '#password';
this.usernameField = '#user';
}
}
Run Code Online (Sandbox Code Playgroud)
test.js
const homePage = new HomePage();
$(homePage.usernameField ).sendKeys('admin');
$(homePage.passwordField ).sendKeys('password');
Run Code Online (Sandbox Code Playgroud)
pageobject.js
export default class HomePage {
constructor() {
this.passwordField = $('#password');
this.usernameField = $('#user');
}
}
Run Code Online (Sandbox Code Playgroud)
test.js
const homePage = new HomePage();
homePage.usernameField.sendKeys('admin);
homePage.passwordField.sendKeys('password);
Run Code Online (Sandbox Code Playgroud)
这是我过去使用的方法,最终我们获得了许多功能。例如setUsename(), getCurrentUsername(), getUsernameAttibute(), verifyUsernameExists(),password元素和许多其他元素具有和。我们的页面对象变得巨大,所以我觉得这不再是最好的方法。但是,优点之一是我们的测试看起来很干净而且可读性很强。
pageobject.js
export default class HomePage {
constructor() {
var passwordField= $('#password');
var usernameField …Run Code Online (Sandbox Code Playgroud) automated-tests webdriver pageobjects selenium-webdriver protractor