Selenium WebDriver를 사용하여 다양한 텍스트 상자에 특정 값을 입력하고 Try-Block 및 If-Else 문을 사용하여 특정 웹 기반 응용 프로그램 그런 다음 해당 개별 요소를 기반으로 적절한 값을 제공하십시오. 내 문제는 if-else 문을 읽을 때마다 else {block에 "error"를 출력하기 때문에 if 문이 "false"로 읽혀지는 것 같습니다.Selenium WebDriver에서 if-else 문을 사용하여 웹 요소에 값 찾기 및 제공
나는 이미 element.getAttribute ("id")의 String 값을 검사했으며, if-else 문에서 지정한 값과 같습니다.
일부 파고를했는데 요소 가시성 및 element.isEnabled() 사용과 관련된 if-else 문을 발견 한 동안 element.getAttribute() 문자열 값을 사용하여 특정 항목을 찾지 못했습니다. 웹 요소를 만들고 값을 보냅니다. 여기
내 코드입니다 :WebDriver 드라이버;
@Test
public void enterInfo() throws Exception {
System.setProperty("webdriver.gecko.driver","C:\\Users\\Kohout\\Documents\\geckoDriver\\geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
driver = new FirefoxDriver();
driver.get("http://www.firstcry.com/");
Thread.sleep(3000L);
WebElement element = driver.findElement(By.id("Email"));
typingInfo(element);
Thread.sleep(2000L);
element = driver.findElement(By.id("mobileprefix"));
typingInfo(element);
Thread.sleep(2000L);
element = driver.findElement(By.id("Mobile"));
typingInfo(element);
}
public void typingInfo(WebElement element) throws AWTException {
String email = "[email protected]";
String countryCode = "1";
String phoneNumber = "555-318-9357";
try {
if(element.getAttribute("id") == "Email") {
System.out.println("Commencing command...");
element.sendKeys(email);
} else if (element.getAttribute("id") == "mobileprefix") {
System.out.println("Commencing command...");
element.sendKeys(countryCode);
} else if (element.getAttribute("id") == "Mobile") {
System.out.println("Commencing command...");
element.sendKeys(phoneNumber);
} else {
System.out.println("Error");
}
} catch (Throwable t) {
System.out.println(t.getStackTrace());
}
귀하의 도움과 제안에 감사드립니다.
당신이'else' 블록의 속성을 인쇄 할 수 던져? 'System.out.println (element.getAttribute ("id")); System.out.println ("Error"); ' – Buaban
문자열을 비교할 때 == 대신 equals() 함수를 사용해야합니다. 아래 문제에 대한 중대한 답변. –