如何找到按钮注册

Posted

技术标签:

【中文标题】如何找到按钮注册【英文标题】:How to locate the button REGISTER 【发布时间】:2019-03-01 19:38:41 【问题描述】:

如何在类中找到按钮的 xpath。请找到我上传的相同附件:

【问题讨论】:

在类下 - 请提出更详细的问题:您的试用代码、错误描述和有效描述。 你可以参考下面的链接,有同样的问题。 ***.com/questions/3030487/…> 【参考方案1】:

使用 CSS 选择器试试这个。确保使用适当的等待

driver.findElement(By.cssSelector
     (.btn.btn-info.btn-lg-block.w3ls-btnl.px-4.text-uppercase)
 ).click();

此处不应使用 type,因为它不是节点/标签名称

driver.findElement(By.xpath("//div[@class='buttons']//button")).click();
//driver.findElement(By.xpath("//div[@class='buttons']/type")).click(); WRONG

    确保元素不应该在框架中,否则我们必须先 switchTo 框架然后执行 findElement

     driver.switchTo("frameName/ID") 
           .findElement(By.xpath("//div[@class='buttons']//button"))
           .click();
    

    元素应该在点击之前加载,你可以为此使用等待语句

【讨论】:

【参考方案2】:

由于元素是一个<button> 标签,仅仅标识元素可能不足以满足您的用例,您可能需要在元素上调用click() 方法。

要在元素上调用click(),因为元素位于模态对话框中,您需要诱导WebDriverWait以使元素可点击 em>,您可以使用以下任一解决方案:

cssSelector

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.btn.btn-info.btn-lg-block.w3ls-btn1.px-4.text-uppercase[data-target$='exampleModal1']"))).click();

xpath:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.id("//button[@class='btn btn-info btn-lg-block w3ls-btn1 px-4 text-uppercase'][normalize-space()='REGISTER']"))).click();

【讨论】:

不工作并不能说明发生了什么错误。使用您的代码试验和错误堆栈跟踪更新问题以进行进一步分析【参考方案3】:

试试这个,

driver.findElement(By.xpath("//button[@data-target='@exampleModal1' and contains(text(),'Register')]"));

【讨论】:

不工作是什么意思?我们应该假设什么,为了解决它,您必须分享您的试用代码和异常/错误详细信息。

以上是关于如何找到按钮注册的主要内容,如果未能解决你的问题,请参考以下文章

注册成功后如何使按钮可见?

如何通过UIImage而不是IOS中的按钮进行注册

如何在 Swift 中使用 UIKit 注册多个按钮点击?

win10系统如何设置读取用户组的权限?

当按钮覆盖在tableview顶部时,如何防止tableview单元注册一个tap?

当按钮覆盖在表格视图顶部时,如何防止表格视图单元格注册点击?