Chrome 如何在wdio中单击一个不可单击的提交按钮?

xxb16uws  于 2023-07-31  发布在  Go
关注(0)|答案(1)|浏览(81)

我有一个网站,有一个登录形式。我可以输入用户名和密码,但是,当我试图点击提交按钮。什么都没发生。
我的设置是为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


有人知道为什么我有一个不可点击的链接吗?

uubf1zoe

uubf1zoe1#

这不是一个Angular 的东西,这是一个HTML的东西。提交按钮必须在指定提交时应执行的操作的FORM tag内。

相关问题