gpt4 book ai didi

java - Selenium Webdriver Java 验证名称字段

转载 作者:行者123 更新时间:2023-11-30 02:57:03 24 4
gpt4 key购买 nike

我对 Selenium 不太有经验。我想通过执行以下操作来测试我的知识,验证表单中的名称字段没有特殊字符。我没能这么做。第一次我尝试将字符放入数组中并从数组中读取,但我不断收到警报失败消息。然后我想到了以下方法并且总是得到“有效”输出。

导入junit.framework.Assert;

import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;


public class NameField {
public static FirefoxDriver fx= new FirefoxDriver();
public static String doCheck()
{




fx.get("http://www.gogamers.com/#!blank/gs4id");
String regex = "^[A-Z0-9+$";

String str=fx.findElement(By.id("comp-iikjotq8nameField")).getText();
fx.findElement(By.id("comp-iikjotq8nameField")).sendKeys("@john");



if (str.matches("[" + regex + "]+")){
System.out.println("Invalid character in Name field");
}
else{
System.out.println("valid");
}
return str;

我想到的是,如果您使用 sendkey 给出名称(例如:John#、@john),您将收到无效消息。我在想的另一件事是我应该使用断言吗?请建议一个最好的方法,一个小的示例代码会有所帮助。

<小时/>

我今天尝试的新代码仍然给我有效,当我期待无效时。有人可以看一下吗?我尝试了两种匹配并发现

公共(public)类雅虎邮件{

public static void main(String[] args) {

FirefoxDriver fx= new FirefoxDriver();
fx.get("https://login.yahoo.com/account/create?");

String title=fx.getTitle();
Assert.assertTrue(title.contains("Yahoo"));
//First I send a text, then I get the text
fx.findElement(By.id("usernamereg-firstName")).sendKeys("$John");

fx.findElement(By.id("usernamereg-firstName")).getText();

//This is the String I want to find
String firstName="John";

//If there are these symbols associated with the name-show invalid
String patternString = ".*$%^#:.*";

Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(firstName);
if(matcher.find()){

System.out.println("Invalid Name" );
}
else{
System.out.println("Valid Name");
}
}

}

最佳答案

您可以修复正则表达式以匹配任何非字母数字字符,并使用 PatternMatcher 代替:

Pattern p = Pattern.compile("\\W");
Matcher m = p.matcher(str);
if (m.find()) {
System.out.println("Invalid character in Name field");
}
else {
System.out.println("valid");
}

关于java - Selenium Webdriver Java 验证名称字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36973214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com