【发布时间】:2014-07-09 13:48:27
【问题描述】:
我正在尝试编写一个 Selenium WebDriver 测试,该测试导航到 Google,搜索某些内容,然后验证 Google 是否搜索了输入的内容。但是,当我可以看到时,下面的代码给出了“假”输出这是真的。
我能为这种情况找到的所有代码似乎都是 Google Instant 之前的代码,我无法在 FirefoxDriver 中关闭 Instant。在检查任何内容之前,它还应该等待带有 Web、图像、视频等的栏可点击;增加implicitlyWait 值似乎对测试的结果或其最终结果没有任何影响。在 verifyTrue 和 assertTrue 之间切换不会改变结果。
如果答案很明显,我深表歉意,但我对 Selenium WebDriver(和 Java)比较陌生。
package mypackage;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.util.concurrent.TimeUnit;
public class NavigateSearchVerify {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
String baseUrl = "http://www.google.com";
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.get(baseUrl);
WebElement query = driver.findElement(By.name("q"));
query.sendKeys("Hello");
query.sendKeys(Keys.ENTER);
WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.elementToBeClickable(By.id("top_nav")));
Boolean assertTrue = driver.findElements(By.className("gbqfif")).contains("Hello");
if (assertTrue == true) {
System.out.print("Yes");
} else {
System.out.print("No");
}
}
}
【问题讨论】: