评估长xpath所需时间与短xpath相比有什么重大区别?例子:
Ex。 是否有使用 By.id("id1")
和
By.Xpath("//*[@id='id1']")
Webdriver Xpath性能
3
A
回答
13
我很高兴你问之间
/div[@id = 'id1']/label[contains(text(), 'Hello')/../../descendant::input
和
//input
关于什么区别之间的性能差异,我找到了答案令人吃惊。
- 短XPath是比长的XPath快,但不是很多
- 在Firefox按名称搜索是比长的XPath,但为短的XPath(有时更快)热死
- 在Internet Explorer更快,通过。名称是远比XPath的慢
这似乎在指导西蒙·斯图尔特一直给人重新面对飞:IE浏览器的性能的XPath,所以我把它当作一粒盐,但在下面的代码中,它非常一致。
我写了一个快速测试来说明这一点。它看起来在搜索框上的谷歌
package com.PeterNewhook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class FooTest {
public static void main(String[] args) {
long start;
long end;
WebDriver driver;
String longXpath = "/html/body/span[@id='main']/center/span[@id='body']/center/form/table/tbody/tr/td[2]/div[@class='ds']/input[@name='q']";
String shortXpath = "//input[@name='q']";
String elementId = "q";
System.out.println("Using Firefox driver.");
driver = new FirefoxDriver();
driver.get("http://google.com");
start = System.nanoTime();
driver.findElement(By.xpath(longXpath));
end = System.nanoTime()-start;
System.out.println("The long XPath lookup took " + (double)end/1000000000.0 + " seconds.");
start = System.nanoTime();
driver.findElement(By.xpath(shortXpath));
end = System.nanoTime() - start;
System.out.println("The short XPath lookup took " + (double)end/1000000000.0 + " seconds.");
start = System.nanoTime();
driver.findElement(By.name(elementId));
end = System.nanoTime() - start;
System.out.println("The By.name lookup took " + (double)end/1000000000.0 + " seconds.");
driver.close();
System.out.println("\nUsing Internet Explorer driver.");
driver = new InternetExplorerDriver();
driver.get("http://google.com");
start = System.nanoTime();
driver.findElement(By.xpath(longXpath));
end = System.nanoTime()-start;
System.out.println("The long XPath lookup took " + (double)end/1000000000.0 + " seconds.");
start = System.nanoTime();
driver.findElement(By.xpath(shortXpath));
end = System.nanoTime() - start;
System.out.println("The short XPath lookup took " + (double)end/1000000000.0 + " seconds.");
start = System.nanoTime();
driver.findElement(By.name(elementId));
end = System.nanoTime() - start;
System.out.println("The By.name lookup took " + (double)end/1000000000.0 + " seconds.");
driver.close();
}
}
这使输出:
使用Firefox的驱动程序。
长XPath查找耗时0.13667022秒。
简短的XPath查找花费了0.024628577秒。
By.name查找花费了0.025209911秒。
使用Internet Explorer驱动程序。
长XPath查找耗时0.196125248秒。
简短的XPath查找耗时0.164044262秒。
By.name查找花费了1.005109964秒。
相关问题
- 1. WebDriver:提取Xpath
- 2. selenium webdriver -xpath生成
- 3. Selenium webdriver xpath过滤
- 4. selenium python webdriver xpath error
- 5. xquery与xpath性能
- 6. Watir webdriver行的性能
- 7. IE XPath的Selenium Webdriver - c#
- 8. selenium webdriver中xpath的区别?
- 9. webdriver:获取元素的xpath?
- 10. selenium webdriver中的动态xpath
- 11. python webdriver:从innerHTML获取XPATH
- 12. XPath vs DOM的性能
- 13. Selenium 2.0 IE Xpath性能
- 14. XPath性能 - 哪个更好?
- 15. 的XPath性能&版本
- 16. XSLT/Xpath的 - 和功能性能
- 17. xom xpath查询的性能与jaxp xpath查询与dom性能的比较
- 18. 获取Webdriver中元素的所有属性或xPath
- 19. 硒的webdriver的Xpath与点在属性名
- 20. 在Selenium WebDriver属性中使用XPath通配符
- 21. 我怎样才能在硒的XPath计数的webdriver
- 22. WebDriver可以使用xpath找到元素,Html敏捷包不能
- 23. selenium webdriver Java:提高“if else”性能?
- 24. 硒IDE和硒的webdriver - 性能
- 25. Selenium Webdriver性能与时间的关系
- 26. 硒不能与XPath
- 27. Selenium Webdriver - XPath:如何在xpath中使用'和''或'
- 28. 如何在硒webdriver中找到xpath
- 29. CSS或XPath正则表达式的webdriver
- 30. 如何处理改变xpath,Selenium Webdriver,Java