如何找到按钮注册
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')]"));
【讨论】:
不工作是什么意思?我们应该假设什么,为了解决它,您必须分享您的试用代码和异常/错误详细信息。以上是关于如何找到按钮注册的主要内容,如果未能解决你的问题,请参考以下文章