Java 如何使用SeleniumWebDriver处理动态文本(成功和失败文本)
我在SeleniumWebDriver脚本中面临一个问题,在我的逻辑中,我想用以下场景验证表单提交Java 如何使用SeleniumWebDriver处理动态文本(成功和失败文本),java,selenium,selenium-webdriver,webdriver,testng,Java,Selenium,Selenium Webdriver,Webdriver,Testng,我在SeleniumWebDriver脚本中面临一个问题,在我的逻辑中,我想用以下场景验证表单提交 1.Submit form with already register details - Details already exists 2.Submit Form with new details - Successfully added. 现在我的问题是这两条短信都有不同的定位器,如下所示 driver.findElement(By.xpath("//div[@class='alert al
1.Submit form with already register details - Details already exists
2.Submit Form with new details - Successfully added.
现在我的问题是这两条短信都有不同的定位器,如下所示
driver.findElement(By.xpath("//div[@class='alert alert-success']")).getText();
driver.findElement(By.xpath("//div[@class='alert alert-error']")).getText();
现在我需要java中的selenium代码,因为代码会根据屏幕上的文本自动处理文本,以验证我的测试用例是否通过/失败。请提供如何在网页中编写这种情况
简单地说,我想验证客户是否在系统中注册,如果不是,我应该根据屏幕上的消息在系统中注册
当我同时使用XPath时,它会在系统中查找一个文本,而另一个文本不存在,然后它会给出元素未发现异常,请建议。如果一条消息存在,另一条消息不存在,那么您会得到
NoTouchElementException
,因为其他消息不存在,这是预期的行为。如果您不希望测试在这种情况下失败,那么应该捕获NoTouchElementException。
您甚至可以尝试使用
driver.findElement(By.xpath(“//div[contains(@class,'alert'])).getText();
并验证您得到的文本,但我不能确定它是否有效,因为我不知道您的页面的行为和外观。您可以使用或调节cssSelector
。这将检查两个选项并返回找到的第一个选项
driver.findElement(By.cssSelector(".alert.alert-success, .alert.alert-error")).getText();
您可以将Xpath搜索的结果分配给一个字符串变量,然后从中调整流程。我已经看到,CSS已经给出了一个答案,但只要您的原始帖子引用Xpath,这里就是Xpath解决方案:
String isformalreadysubmited=driver.findElement(By.xpath(“//div[@class='alert-alert-error'或@class='alert-alert-success']))。getText()
从这一点开始,您可以使用一个简单的if语句来引导流程:
if(isFormAlreadySubmitted.equals("Details already exist"){
System.out.println("Form already submitted!");
}
else if(isFormAlreadySubmitted.equals("Successfully added"){
System.out.println("Successfully added a new record!");
}
else{
System.out.println("Something went wrong! Couldn't get alert text, is alert present?");
}
也许你应该使用
try
/catch
?非常好的答案,谢谢你宝贵的时间和对我问题的回答。非常感谢。你也可以让选择器为。如果它返回你想要的元素,就提醒它,而不使用或语法。@freester先生,可能吧,不过我不熟悉sit所以我在使用OP提供的定位器。