我在测试自动化实施过程中遇到过一个问题。特别是测试检查是否显示汉堡菜单。 到目前为止,我定义了元素和子元素,我需要等待一秒钟,而不是浪费时间如果我知道元素将在几秒钟后不显示。
WebDriverWait wait = new WebDriverWait(getDriver(), 1);
WebElement hamMenu = el.findElement(By.xpath(HAMBURGER_MENU_GENERAL_XPATH));
如何在一秒钟内尝试查找元素的方式实现方法findElement?我不想再逗留...谢谢
答案 0 :(得分:1)
试试这个 -
gcc -o hello-x86 hello.c -g -rdynamic -O0 -Wall
./hello-x86
size = 6
0x40095c : ./hello-x86(foo+0x1f) [0x40095c]
0x400a2d : ./hello-x86(b+0x9) [0x400a2d]
0x400a38 : ./hello-x86(a+0x9) [0x400a38]
0x400a4e : ./hello-x86(main+0x14) [0x400a4e]
0x7fee0d003f45 : /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fee0d003f45]
0x400879 : ./hello-x86() [0x400879]
答案 1 :(得分:0)
如果我总结一下你的要求如下:
try-catch {}
块中,以便能够在没有汉堡包的情况下继续进行。您的有效代码可以是:
try {
WebElement hamburger = new WebDriverWait(getDriver(), 1).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("HAMBURGER_MENU_GENERAL_XPATH")));
System.out.println("Hamburger is displayed in 1 sec");
//rest of your code
} catch (NoSuchElementException e){
System.out.println("Hamburger wasn't displayed in 1 sec");
//rest of your code
}
答案 2 :(得分:-1)
我明白了。谢谢你的所有提示。这只会等待很短的时间。
public boolean isHamMenuDisplayed(){
getDriver().manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
if (el.findElements(By.xpath(HAMBURGER_MENU_GENERAL_XPATH)).size() == 0)
return false;
else
return true;}