您好我正在尝试使用selinuim web驱动程序编写一个java脚本,以验证用户在注册期间是否已存在。 当用户访问我的网站时,他点击“成为一个”
上填写表格和集团我的脚本成功完成了表单,但无法检测到“已存在电子邮件”消息
这是我试图检测的消息的HTML代码
<p name="already" style="color:Red;" class="ng-binding">Email Already exist</p>
这是我用来验证文本是否显示但始终显示我已检测到
的代码 driver.findElement(By.cssSelector("span.ng-scope")).click();
int v = 0,i=0;
System.out.println("enter while");
while(v==0){
try{
WebElement txtbox_username = driver.findElement(By.id("firstname"));
if(txtbox_username.isDisplayed()){
v=1;
System.out.println("Complete the forme");}}
catch(NoSuchElementException nsee){
i++;
System.out.println("Try number:"+i); }}
driver.findElement(By.id("firstname")).sendKeys("haha");
driver.findElement(By.id("lastname")).sendKeys("haha");
driver.findElement(By.name("email")).sendKeys("hah@ahla.com");
driver.findElement(By.id("password")).sendKeys("yassiryakhlaf");
driver.findElement(By.id("signmeup")).click();
System.out.println(driver.findElement(By.id("firstname")).getText());
try {Boolean display = driver.findElement(By.xpath("//p[@name='already']")).getText().equals("Email Already exist");
if (display){System.out.println("detected");}
else{System.out.println("not detected");}
} catch (NoSuchElementException e) {System.out.println("nott detected");}
答案 0 :(得分:0)
这对我有用。
try {
boolean boo = driver.findElement(By.xpath("//div[@id='MsgAfterSignup']/center/p")).isDisplayed()
&& driver.findElement(By.xpath("//div[@id='MsgAfterSignup']/center/p")).getText()
.equals("Email Already exist");
if (boo){
System.out.println("detected");
}
else{
System.out.println("Not detected");
}
} catch (Exception e) {
System.out.println("Not detected");
}
答案 1 :(得分:0)
也许该元素总是存在,但是一些javascript会显示或隐藏元素(或父元素),具体取决于&#34;已存在&#34;的结果。检查。
也许尝试使用isDisplayed()方法?