【问题标题】:Cannot find a way to tap() this element (wd,nodejs)找不到点击()此元素的方法(wd,nodejs)
【发布时间】:2017-07-13 04:09:54
【问题描述】:

我有一个这样的 DOM:

<form id="frmResendPassword" role="form" method="post">
  <div class="form-group">...</div>
  <span class="pull-right">
     <button type="submit" class="btn btn-sm btn-default">
     Resend Password</button>
   </span>
 </form>

我想点击“重新发送密码”按钮。

我尝试了许多不同的选择器,例如:

elementByClassName("btn-default")
elementById("frmResendPassword")
elementByName("Resend Password")
elementByCss(thecsspath)

ect.... 他们都没有执行tap()... 但是他们不会抛出未找到元素的错误.... 所以我很困惑。有人可以帮忙吗

更新: 这是基本的自动化代码......它非常基本

  it("should send text to phone", function(){
    sleep.sleep(5)
    return browser
    .elementByName("mobileNo")
    .sendKeys(usrnme)
    .elementByCss("#frmResendPassword button[type=submit]")
    .tap()
})

它可以很好地输入手机号码,但它似乎只是忽略了按下按钮。

【问题讨论】:

  • 您使用什么代码调用tap()thecsspath 是什么?您的其他选择器抓取了错误的元素,elementByClassName("btn-default") 除外,但这也可能抓取了不同的按钮。

标签: node.js selenium selenium-webdriver automation webdriver


【解决方案1】:

我的猜测是选择器是问题所在。试试这个:

elementByCss("button[type=submit]")

或者如果它不能唯一标识它,也许是这样的:

elementByCss("#frmResendPassword button[type=submit]")

在英语中,这意味着 buttonsubmittype 值具有 form 的祖先,其中 id(#) 是 frmResendPassword

【讨论】:

  • 两者都不起作用,还有其他想法吗?我严重坚持这个简单的任务
  • 有趣,tap 可能有点挑剔,我知道人们已经使用了很多变通方法来使其更可靠,但我认为现在更好。很高兴您可以使用 click
【解决方案2】:

这就是我解决它的方法,感谢 mrfreester

 it("should send text to phone", function(){
sleep.sleep(5)
return browser
.elementByName("mobileNo")
.sendKeys(usrnme)
.elementByCss("#frmResendPassword button[type=submit]")
.click()

})

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2018-10-26
    • 2017-11-26
    • 1970-01-01
    • 2019-05-30
    • 2022-12-17
    • 1970-01-01
    • 2012-04-18
    相关资源
    最近更新 更多