【发布时间】:2017-12-15 15:30:24
【问题描述】:
我正在尝试使用 Selenium WebDriver 在各种文本框中键入特定值,使用 Try-Block 和 If-Else 语句来查明特定的 Web 元素,然后根据该单个元素提供适当的值。我的问题是我的 if 语句似乎被解读为“假”,因为每次读取 if-else 语句时,它都会转到 else { 块并打印“错误”。
我已经检查了 element.getAttribute("id") 的字符串值,它们确实等于我在 if-else 语句中给出的值。
我已经进行了一些挖掘,虽然我发现了一些与元素可见性和 element.isEnabled() 的用法相关的 if-else 语句,但我没有找到任何使用 element.getAttribute() 字符串值来查找特定 Web 的内容元素并随后发送值。
这是我的代码:
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 = "eclipse@gmail.com";
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"); -
比较字符串时需要使用 equals() 函数而不是 ==。以下问题的最佳答案。
标签: java selenium if-statement webdriver