我正在努力实现以下目标:
我已经提出了下面的代码,但它真的慢。我不确定有没有更好的方法来实现它?任何意见将不胜感激!!
boolean exists = driver.findElements( By.id("xxx")).size() != 0;
if (exists)
{
driver.findElement(By.id("xxx")).click();
driver.findElement(By.cssSelector("xxx")).click();
}
else
{
driver.findElement(By.cssSelector("xxx")).click();
}
答案 0 :(得分:4)
我找出了降低性能的因素。这是这一行:
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
由于该语句,它将等待元素被验证30秒。
将其更改为:
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
..它现在就像一个魅力......:)
答案 1 :(得分:0)
你有什么用于CSS选择器?您可以通过调整这些来提高性能。另一件会减慢速度的事情是当页面有太多DOM elements时。
查看CSS选择器以及扫描哪些DOM元素的示例会很有帮助。
例如,如果您的页面中包含1000个DIV元素,则使用如下类:
<div class="smallItem">...</div>
<div class="largeItem">...</div>
<div class="smallItem">...</div>
你使用这样的css选择器:
".smallItem"
要选择所有DIV元素,它必须扫描每个DOM元素并计算类属性。