Tag: selenium webdriver

我如何使用wdio.conf.js?

我试图用jasminetesting框架webdriverio 。 我可以通过在命令行键入jasmine来运行我的testing。 但是,当我做wdio wdio.conf.js ,会打开一堆额外的浏览器,这些浏览器什么都不做。 我只是想知道wdio.conf.js文件是什么时候可以在命令行运行茉莉花。 最终它是一回事,对吧? 但是,我不能让wdio.conf.js文件以相同的方式工作,所以对我来说没用。 也许我没有正确地pipe理浏览器客户端,但是我没有看到关于如何通常完成的任何指导。 我读了文档,但它超出了自动生成wdio.conf文件的含义,所以“一切正常”。 我是否应该使用grunt或gulp来运行我的testing,或者将这些工具与wdio.conf的想法分开? 我只是试图让我的头在所有这些不同的工具。 我需要做的就是进行多个自动化testing来testing一个网站。 谢谢你的帮助。

量angular器 – 每次运行后都不能读取未定义属性“headerPrinter”的exception

我真的不知道这个例外的原因是什么,它的副作用是什么。 但是即使所有的testing用例都通过了,每次都会出现。 请帮忙弄清楚如何解决这个问题 – [launcher] Error: TypeError: Cannot read property 'headerPrinter' of undefined at printHeader (C:\automation\tests\node_modules\protractor-console\dist\protractor-console.js:81:8) at C:\automation\tests\node_modules\protractor-console\dist\protractor-console.js:56:19 at [object Object].promise.ControlFlow.runInFrame_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:1877:20) at [object Object].promise.Callback_.goog.defineClass.notify (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:2464:25) at [object Object].promise.Promise.notify_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:563:12) at Array.forEach (native) at Object.goog.array.forEach (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\array\array.js:203:43) at [object Object].promise.Promise.notifyAll_ (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\webdriver\promise.js:552:16) at goog.async.run.processWorkQueue (C:\automation\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\goog\async\run.js:125:21) at runMicrotasksCallback (node.js:337:7) [launcher] Process exited with error code 100 量angular器conf: //-=-=-=- […]

Appium Grid集线器向节点发送错误的一组function

我正在尝试使用下面的节点configuration来configurationAppium网格。 -Hub正从testng接收适当的function,但是集线器只向我的两个节点发送错误的function。 (节点configuration如下) 请build议我去哪里错了。 仿真器节点configuration 使用以下命令运行节点的命令: node appium.js –port 4723 –nodeconfig G:\Selenium2\Grid\AppiumEmulatorNode.json { "capabilities": [{ "browserName": "Emulator_5.1.0", "version": "5.1.0", "maxInstances": 1, "platform": "ANDROID" }], "configuration": { "cleanUpCycle": 2000, "timeout": 30000, "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "url": "http://192.168.0.104:4723/wd/hub", "host": 192.168.0.104, "port": 4723, "maxSession": 1, "register": true, "registerCycle": 5000, "hubPort": 4444 , "hubHost": "192.168.0.104" } } 真正的设备节点configuration 运行节点的命令: node appium.js […]

是否内置select器选项以使用nightwatchjs进行复杂的决策?

使用名为NightWatch的JavaScript Selenium工具,在应用testing之前确定GUI部分的好习惯是什么? 例如,如果在A或B上发现,然后进行单独的testing。 另一个例子,确定是否login,所以你不会保持login等。似乎当我使用if语句与select器,它想要失败,如果我得到else选项。 我已经使用Python API很长一段时间了,你可以访问所有的Python库,你可以使用Selenium Selectors进行validation,而不会导致错误等。我甚至使用npm Selenium API的结果类似,但仍然是绿色的到它如何工作,但我不能让NightWatch的层做其他事情,但不pipe我尝试什么,E2E通过或失败。 我想我会把它放在那里,所以我可以看到,如果我只是做错了,或者这是一个普遍的问题。 或者,也许还有其他库旨在帮助我正在寻找。 任何投入将不胜感激。 这里是一个Python中的通用示例,我可以用它来validationA / B选项的工作… # so you know what EC is from selenium.webdriver.support import expected_conditions as EC … try: wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#foo'))) driver.find_element_by_css_selector('#blah1 a').click() except: driver.find_element_by_css_selector('#blah2 a').click() 另一个可能更干净的方式来做它在Python中… if len(driver.find_elements_by_css_selector('#blah1 a')) > 0: driver.find_element_by_css_selector('#blah1 a').click() else: driver.find_element_by_css_selector('#blah2 a').click() 这里显然需要更多的逻辑,因为它没有夜间所有的内置插件,但是这应该让我知道我正在尝试做什么。

等待Selenium的JavaScript事件

我正在Selenium(Node.js)之上构build一个自动化框架,其中包含许多步骤。 每一步都跟上一个步骤,完成之后,返回一个承诺(像Selenium的driver.click()等)返回的承诺。 是否有可能等待JavaScript事件在浏览器上触发? 如果是这样,那么遵循的模式是什么?

量angular器 – 如果条件元素是可见的如何添加如此跳过这个testing用例否则做下面的动作

我试图给2个替代用例添加一个“if”条件, 第一个是如果它存在用户,所以它应该在屏幕上寻找“idan + free@gmail.com”string,跳到testing用例到下一个, ELSE –执行以下操作。 testing用例 – describe ('Production – New Free Account Test Case', function() { var EC = protractor.ExpectedConditions; var dashboardBtn = element(by.xpath('//div/md-sidenav/f-main-menu/div[1]/ul[1]/li[1]/button/div/div[1]/md-icon')); var noActivation = element(by.linkText("idan+free@gmail.com")); beforeEach(function() { browser.ignoreSynchronization = true; }); afterEach(function() { browser.ignoreSynchronization = false; }); it ('Production – Free Account – Activation', function() { browser.wait(EC.elementToBeClickable(dashboardBtn), 30000); dashboardBtn.click(); browser.wait(EC.visibilityOf(element(by.css("div.task-header.font-smd.task-clickable.ng-binding.flex"))), […]

元素不可点击Selenium webdriver

我有下面的代码,我不知道如何点击一个元素,而没有得到"Element is not clickable at point"错误消息。 在点击之前,您也可以看到我正在移动元素。 以下代码示例应该完全工作。 var webdriver = require('selenium-webdriver') , By = webdriver.By , until = webdriver.until; var driver = new webdriver.Builder().forBrowser('firefox').build(); driver.get('http://www.vapeworld.com/'); driver.manage().timeouts().implicitlyWait(10, 3000); for (i = 0; i < 5; i++) { try { driver.executeScript("try{jQuery('[name=\"" + i.toString() + "_name\"]')[1].click()}catch(Ex){};"); } catch (Ex) {} } driver.findElement(webdriver.By.id('search')).sendKeys('pax 2'); //to enter text driver.findElement(webdriver.By.className('button […]

WebDriver NodeJS实例化具有function的IE驱动程序:引入FlameinessByIgnoringProtectedModeSettings(ignoreSettings)

我尝试使用IEfunction实例化驱动程序会话来忽略Internet Explorer中的保护模式设置,但我不确定语法。 我努力了: var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.ie().introduceFlakinessByIgnoringProtectedModeSettings(true).build(); var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.ie().introduceFlakinessByIgnoringProtectedModeSettings, true.build(); var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.ie().ignoreProtectedModeSettings(true).build(); var driver = new webdriver.Builder().withCapabilities(webdriver.Capabilities.ie().introduceFlakinessByIgnoringProtectedModeSettings(true).build(); var driver = new webdriver.Builder().withCapabilities({ "browserName": "ie" }, {"ignoreProtectedModeSettings": "true"}).build(); var driver = new webdriver.Builder().withCapabilities({ "browserName": "ie" }, {"introduceFlakinessByIgnoringProtectedModeSettings": "true"}).build(); 到目前为止没有任何工作。 什么是正确的这个在JavaScript中的联合? 谢谢!!!

一旦元素存在,如何运行seleniumwebdriver代码

我在过去一个月看过的所有东西都已经过时了。 这是我的问题,我浏览了一个网站上的5个不同的页面,然后才得到所需的数据。 我不能发射一个driver.get ,因为所有5个不同页面的url保持不变。 由于Node.js是asynchronous的,因此它在元素出现之前运行代码。 我意识到我可以使用超时,但我运行这个代码100的时间,所以超时将无法正常工作。 每个人都在网上说要做到这一点,但它已经过时,并不起作用: driver.findElement(By.css('#gridsortlink')).then(function(webElement) { webElement.isElementPresent(By.css('#gridsortlink')) .then(function(found) { console.log(found); }); }); 如果你确实知道如何做到这一点,那就好了,因为我一直在寻找一个月的解决scheme。

NemoJs vs NightWatchJS? 的优点和缺点

我对这两个框架都非常陌生。 看起来像nightwatch有更好的文件和广泛的API相比,尼莫? 相互使用的主要优点是什么?