我在原始webdriver中看到了几个使用getAttribute('xpath')并附加到'/ ..'的解决方案,但webdriver.io没有xpath属性,所以我无法使用它.关于如何抓取父元素的任何想法?
我试图测试的情况是在引导程序布局中,实际上我正在尝试检查的类的元素是上面的一个.它看起来像这样:
<div class="form-group">
<input class="form-control" type="text" name="username">
<other stuff>
</div>
Run Code Online (Sandbox Code Playgroud)
我通过driver.element选择("input [name ='username'"],但错误类实际上击中了div
<div class="form-group error">
<input class="form-control" type="text" name="username">
<other stuff>
</div>
Run Code Online (Sandbox Code Playgroud)
所以我需要检查div本身是否有错误类,而不是我能找到的输入(div上没有uniques)
任何帮助将不胜感激.
我正在尝试将带有selenium-webdriver gem的Ruby中的以下代码移植到带有WebdriverIO的Node.js:
@webdriver.navigate.to "https://imgur.com/upload"
element = @webdriver.find_element(:id, 'global-files-button')
element.send_keys("C:\\test\\image.png")
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,代码非常简单:导航到URL,找到输入,设置文件路径,并按预期工作,选择要上载的文件.
这是我的移植版本:
describe('User can upload', () => {
it('select file', () => {
browser.url("https://imgur.com/upload");
browser.waitForExist('#global-files-button');
$('#global-files-button').keys("C : \\ t e s t \\ i m a g e . p n g".split(" "));
});
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,这个测试没有设置路径,我无法找到一个使用wdio上传这样的文件的工作示例,文档让我猜测.任何建议非常感谢.
我知道chooseFile和uploadFile,但我正在使用云平台来运行我的wdio测试,但它们似乎无法可靠地工作.
如何告诉 webdriver-io 使用 Firefox 开发人员版而不是普通的 Firefox?我需要使用普通 Firefox 不支持的 CSS4 选择器。我阅读了文档,但找不到该选项。
我想更改浏览器语言。但它不起作用。显示默认浏览器语言..
capabilities: [{
browserName: 'chrome',
chromeOptions: {
args: ['--lang=ja']
}
}],
Run Code Online (Sandbox Code Playgroud) 在 Safari 10.1 中尝试将文本框的值设置为空白时出现此错误。
使用 WebdriverIO:4.6.2
场景:文本框中已有文本。必须将该文本框设为空白才能重置搜索。
代码片段:
$(elementSelector).setValue('');
browser.waitUntil(() =>{
//Some conditions to meet after reset
});
Run Code Online (Sandbox Code Playgroud)
错误:
An unknown server-side error occurred while processing the command. (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 11 milliseconds
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700'
System info: host: 'mac-185-44-130-79.browserstack.com', ip: '185.44.130.79', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.5', java.version: '1.8.0_51'
Driver info: org.openqa.selenium.safari.SafariDriver
Capabilities [{applicationCacheEnabled=true, rotatable=false, databaseEnabled=true, handlesAlerts=true, version=12604.1.22, cleanSession=true, …Run Code Online (Sandbox Code Playgroud) 我有一个以不同模式运行的应用程序(将其视为针对不同平台运行并使用不同协议),其中一个应用程序在每次打开页面时都有很长的加载时间。还有一些其他小的变化,但所有这些都可以使用 wdio 的设置变量来处理。
目前,我为应用程序的每个部分都有一个测试文件(带有描述)。如果正在测试的配置之一没有这么长的等待时间,那会很好。无论如何,我决定处理这个测试用例,将它全部处理在一个文件中,这些文件都将在同一页面上。
无论如何,与其将我之前的所有测试复制并粘贴到这个大文件中,我想知道是否可以以某种方式重用它们,就好像它们是函数一样。
就像现在一样,我只是将东西包装在函数中,例如:
// test1.js
module.exports = function test1 () {
describe('Test1', function () {
var settings = {}
before(function () {
// do something
})
it('do something', function () {
assert.ok(true)
})
it('do something else', function () {
assert.ok(true)
})
})
}
Run Code Online (Sandbox Code Playgroud)
在另一个文件中,我们运行我们创建的每个函数:
test1 = require('./test1')
test2 = require('./test2')
...
test10 = require('./test10')
describe('Main Test', function () {
test1()
test2()
...
test10()
}
Run Code Online (Sandbox Code Playgroud)
如果我能以某种方式选择在我的命令上运行哪些测试函数,这将解决我的 DRY 问题
wdio wdio/wdio.conf.js --specs wdio/test/spects/browser/test1.js
这显然行不通。
基本上我想要一个能够重用我的测试(描述块)的解决方案。我所做的是正确的道路吗?如果不是,应该怎么做?
javascript mocha.js selenium-webdriver webdriver-io e2e-testing
当我尝试运行它时,我从我的 webdriverIO selenium 代码中收到以下错误:
失败:未知错误:元素在点 (389, 709) 处不可点击。其他元素会收到点击:< html lang="en" >...</html >
这是相关的代码:
const checkboxSelector =
getAttributeSelector('data-test', 'manual-checkbox');
browser.click(checkboxSelector);
Run Code Online (Sandbox Code Playgroud)
我如何摆脱这个错误?
- - 附加信息 - -
测试正在使用 chromedriver 运行:
var desktop = exports.desktop = [{
browser: 'Chrome',
os: 'Windows',
os_version: '7'
}];
Run Code Online (Sandbox Code Playgroud) javascript selenium integration-testing selenium-webdriver webdriver-io
当我尝试运行 npm run 然后我得到以下错误我使用以下配置:
webdriverio v4.14.4
node v8.5
npm v5.3
Windows 10
下面是我的配置文件
"scripts":{
"web": "node node_modules/.bin/wdio ./test/config/suite.web.conf.js",
}
Run Code Online (Sandbox Code Playgroud)
以下错误:
> $ npm run web
> tconnect-uiautomation@1.1.5 web >C:\Users\user\Downloads\webdriverioFramework\webdriverioFramework
>ENV=preprod node node_modules/.bin/wdio ./test/config/suite.web.conf.js
C:\Users\user\Downloads\webdriverioFramework\webdriverioFramework\node_modules\.bin\wdio:2
> basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
> ^^^^^^^
>
> SyntaxError: missing ) after argument list
> at createScript (vm.js:74:10)
> at Object.runInThisContext (vm.js:116:10)
> at Module._compile (module.js:588:28)
> at Object.Module._extensions..js (module.js:635:10)
> at Module.load (module.js:545:32)
> at tryModuleLoad (module.js:508:12)
> at Function.Module._load (module.js:500:3) …Run Code Online (Sandbox Code Playgroud) 我有一组在 jenkins 中运行的 webdriver.io 测试。它们运行在由外部公司在 k8s 中管理的 selenium 网格上。我想对我的 selenium 后端有更多的控制,所以我试图找到一种方法来在我的 jenkins 管道中设置一个 selenium 后端。不过,我缺乏 docker/k8s 网络知识让我望而却步。
这大概是我的管道的样子:
agent {
kubernetes {
defaultContainer 'jnlp'
yaml """
apiVersion: v1
kind: Pod
spec:
containers:
- name: node
image: node:12.14.1
command:
- cat
tty: true
"""
}
}
stages {
stage('Checkout codebase') {
// do checkout
}
}
stage('Build') {
steps {
container('node') {
sh '''
npm install --production
'''
}
}
}
stage('Test-Mocha') {
steps {
container('node') {
sh "node_modules/.bin/wdio ./test/config/wdio.conf.js --spec …Run Code Online (Sandbox Code Playgroud) 我正在尝试检查数组中是否存在 SubString。在测试中,我断言使用:
expect(classList).toContain('Rail__focused')
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Error: expect(received).toContain(expected // indexOf
Expected value: "Rail__focused"
Received array: ["Rail__item__3NvGX", "Rail__focused__3bGTR", "Tile__tile__3jJYQ", "Tile__wide__1GuVb", "Tile__animated__3H87p", "Tile__active__1mtVd"]
Run Code Online (Sandbox Code Playgroud)
这就是我想要实现并希望通过的
expect(classList).toContain('Rail__focused')
Run Code Online (Sandbox Code Playgroud)
webdriver-io ×10
javascript ×5
selenium ×4
node.js ×2
docker ×1
e2e-testing ×1
firefox ×1
kubernetes ×1
mocha.js ×1
safaridriver ×1
typescript ×1
webdriver ×1