我有一个网站,有一个登录形式。我可以输入用户名和密码,但是,当我试图点击提交按钮。什么都没发生。
我的设置是为nodejs与wdio.
package.json
{
"name": "wido",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"wdio": "wdio run ./wdio.conf.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@wdio/cli": "^8.11.2",
"@wdio/local-runner": "^8.11.2",
"@wdio/mocha-framework": "^8.11.0",
"@wdio/spec-reporter": "^8.11.2",
"chai": "^4.3.7",
"chromedriver": "^114.0.2",
"wdio-allure-reporter": "^0.8.3",
"wdio-chromedriver-service": "^8.1.1",
"@wdio/devtools-service": "^8.11.2"
}
}
字符串
table
<div class="loginMainDiv">
<table cellpadding="0" cellspacing="0" border="0" style="padding-top: 80px; margin-bottom:10px; margin-left:auto;margin-right:auto;">
<tbody>
<tr>
<td><span id="Label2">Benutzername</span></td>
<td class="pl10"><input name="UserName" type="text" id="UserName" tabindex="1" class="text" onfocus="this.select();"></td>
<td><span id="UserNameRequired" style="visibility:hidden;">*</span></td>
</tr>
<tr style="height:10px"><td colspan="3"></td></tr>
<tr>
<td><span id="Label3">Kennwort</span></td>
<td class="pl10 right"><input name="Password" type="password" id="Password" class="text" onfocus="this.select();"></td>
<td><span id="PasswordRequired" style="visibility:hidden;">*</span></td>
</tr>
<tr style="height:10px"><td colspan="3"></td></tr>
<tr>
***<td class="pl10 right" colspan="2"><input id="LoginButton" class="textbutton_default" type="submit" name="LoginButton" value="Anmelden"></td>
<td>***</td>
</tr>
<tr style="height:20px"><td colspan="3"></td></tr>
<tr>
<td style="padding-top:30px;" colspan="2" align="right"></td>
<td></td>
</tr>
</tbody>
</table>
型
样本测试如下……
wdio.conf.js
it('Should set user', async () => {
browser.waitUntil(
() => browser.execute(() => document.readyState === 'complete'),
{
timeout: 60 * 1000, // 60 seconds
timeoutMsg: 'page load failure'
}
);
const input = await $('#UserName');
await input.clearValue()
await input.addValue('user')
browser.saveScreenshot('images/nom-connexion.png');
console.log(await input.getValue()); // outputs: 'user'
});
it('Should set pass', async () => {
const input = await $('#Password');
await input.clearValue()
await input.addValue('pass')
browser.saveScreenshot('images/motdepass-connexion.png');
console.log(await input.getValue()); // outputs: 'pass'
});
// it("Feed in details and initiate login", () => {
// $("//input[@id='UserName']").setValue("user");
// $("//input[@id='Password']").setValue("pass");
// $("//input[@id='LoginButton']").click();
// browser.saveScreenshot('images/changer-connexion.png');
// });
it('Should submit', async () => {
// const submitbutton = await $('#LoginButton');
// await submitbutton.click();
// browser.submitForm('#LoginButton');
// browser.elementClick('#LoginButton')
// await browser.setTimeout({ 'pageLoad': 10000 })
// $('#LoginButton').click();
// $('#LoginButton').submit();
browser.click('#LoginButton');
});
it("get portal Title", () => {
const pagetitle = browser.getTitle()
console.log('Title of the webpage is -' + pagetitle)
browser.saveScreenshot('images/pendant-connexion.png');
});
型
我尝试了几个谷歌的选项,没有任何效果。
A. -将对象直接馈送到浏览器
it('Should submit', async () => {
browser.click('#LoginButton');
});
型
我得到一个错误..
[chrome 114.0.5735.133 linux #0-0] browser.click is not a function
型
B.使用submit
it('Should submit', async () => {
$('#LoginButton').submit();
});
型
它什么都不做在日志中它说它被点击了,但我在登录后拍了一张照片,我只有登录表单。?
x1c 0d1x的数据
C. -使用click
it('Should submit', async () => {
$('#LoginButton').click();
});
型
它什么都不做在日志中它说它被点击了,但我在登录后拍了一张照片,我只有登录表单。与选项B相同。
日志文件
2023-07-28T17:58:42.149Z INFO webdriver: COMMAND elementSendKeys("70C2B84D299CC45CE61C93A79B087FDA_element_5", "<Screenshot[base64]>")
2023-07-28T17:58:42.150Z INFO webdriver: [POST] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/element/70C2B84D299CC45CE61C93A79B087FDA_element_5/value
2023-07-28T17:58:42.150Z INFO webdriver: DATA { text: 'user' }
2023-07-28T17:58:42.183Z INFO webdriver: RESULT null
2023-07-28T17:58:42.184Z INFO webdriver: COMMAND getElementProperty("70C2B84D299CC45CE61C93A79B087FDA_element_5", "value")
2023-07-28T17:58:42.184Z INFO webdriver: [GET] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/element/70C2B84D299CC45CE61C93A79B087FDA_element_5/property/value
2023-07-28T17:58:42.185Z INFO webdriver: COMMAND takeScreenshot()
2023-07-28T17:58:42.185Z INFO webdriver: [GET] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/screenshot
2023-07-28T17:58:42.191Z INFO webdriver: RESULT user
2023-07-28T17:58:42.192Z INFO webdriver: COMMAND findElement("css selector", "#Password")
2023-07-28T17:58:42.192Z INFO webdriver: [POST] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/element
2023-07-28T17:58:42.192Z INFO webdriver: DATA { using: 'css selector', value: '#Password' }
2023-07-28T17:58:42.415Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAAB4AAAAWgCAYAAAC/kV7ZAAAAAXNSR0IArs4c6...
2023-07-28T17:58:42.429Z INFO webdriver: RESULT {
'element-6066-11e4-a52e-4f735466cecf': '70C2B84D299CC45CE61C93A79B087FDA_element_7'
}
2023-07-28T17:58:42.433Z INFO webdriver: COMMAND elementClear("70C2B84D299CC45CE61C93A79B087FDA_element_7")
2023-07-28T17:58:42.433Z INFO webdriver: [POST] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/element/70C2B84D299CC45CE61C93A79B087FDA_element_7/clear
2023-07-28T17:58:42.470Z INFO webdriver: RESULT null
2023-07-28T17:58:42.471Z INFO webdriver: COMMAND elementSendKeys("70C2B84D299CC45CE61C93A79B087FDA_element_7", "<Screenshot[base64]>")
2023-07-28T17:58:42.471Z INFO webdriver: [POST] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/element/70C2B84D299CC45CE61C93A79B087FDA_element_7/value
2023-07-28T17:58:42.471Z INFO webdriver: DATA { text: 'pass' }
2023-07-28T17:58:42.572Z INFO webdriver: RESULT null
2023-07-28T17:58:42.573Z INFO webdriver: COMMAND getElementProperty("70C2B84D299CC45CE61C93A79B087FDA_element_7", "value")
2023-07-28T17:58:42.577Z INFO webdriver: [GET] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/element/70C2B84D299CC45CE61C93A79B087FDA_element_7/property/value
2023-07-28T17:58:42.583Z INFO webdriver: COMMAND takeScreenshot()
2023-07-28T17:58:42.583Z INFO webdriver: [GET] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/screenshot
2023-07-28T17:58:42.596Z INFO webdriver: RESULT pass
2023-07-28T17:58:42.597Z INFO webdriver: COMMAND findElement("css selector", "#LoginButton")
2023-07-28T17:58:42.598Z INFO webdriver: [POST] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/element
2023-07-28T17:58:42.598Z INFO webdriver: DATA { using: 'css selector', value: '#LoginButton' }
2023-07-28T17:58:42.600Z INFO webdriver: COMMAND getTitle()
2023-07-28T17:58:42.614Z INFO webdriver: COMMAND takeScreenshot()
2023-07-28T17:58:42.615Z INFO webdriver: [GET] http://localhost:9515/session/5daf3b8cc89deba3c116fb61f4dffafe/screenshot
型
有人知道为什么我有一个不可点击的链接吗?
1条答案
按热度按时间uubf1zoe1#
这不是一个Angular 的东西,这是一个HTML的东西。提交按钮必须在指定提交时应执行的操作的
FORM
tag内。