Protractor 在量角器中,哪个定位器是有效的by.css、by.xpath或by.id?

Protractor 在量角器中,哪个定位器是有效的by.css、by.xpath或by.id?,protractor,Protractor,就性能而言,使用哪一个更好:by.css、by.xpath或by.id。 我有一个很长的xpath: by.xpath('//*@id="logindiv"]/div[3]/div/div[1]/div/nav/div/div[1]/form/div/div/button') 它可以与其他选择器一起使用,如by.css或by.id。 但还不清楚哪一个更好。量角器在下面使用selenium webdriver进行元素查找/交互等,所以这不是量角器特有的问题,而是selenium webdrive

就性能而言,使用哪一个更好:by.css、by.xpath或by.id。 我有一个很长的xpath:

by.xpath('//*@id="logindiv"]/div[3]/div/div[1]/div/nav/div/div[1]/form/div/div/button')
它可以与其他选择器一起使用,如by.css或by.id。
但还不清楚哪一个更好。

量角器在下面使用selenium webdriver进行元素查找/交互等,所以这不是量角器特有的问题,而是selenium webdriver特有的问题

CSS选择器的性能远远好于Xpath,并且在Selenium社区中有很好的文档记录。以下是一些原因

每个浏览器中的Xpath引擎都不同,因此它们不一致。 上次我检查时,IE没有本机xpath引擎,因此SeleniumWebDriver注入了自己的xpath引擎,以确保其API的兼容性。因此,我们失去了使用SeleniumWebDriver固有的本机浏览器功能的优势。 Xpath往往变得像您的示例一样复杂,因此在我看来很难阅读/维护

但是,在某些情况下,您需要使用xpath,例如,搜索父元素或按其文本搜索元素(我不建议稍后使用)

您可以阅读Simon(SeleniumWebDriver的创建者)的博客。他还建议使用CSS而不是Xpath


因此,我建议您使用id、名称等进行更快的查找。如果不可用,请使用css,如果没有其他适合您的情况,请最终使用xpath。

量角器在下面使用selenium webdriver进行元素查找/交互等,因此这不是量角器特定的问题,而是selenium webdriver特定的问题

CSS选择器的性能远远好于Xpath,并且在Selenium社区中有很好的文档记录。以下是一些原因

每个浏览器中的Xpath引擎都不同,因此它们不一致。 上次我检查时,IE没有本机xpath引擎,因此SeleniumWebDriver注入了自己的xpath引擎,以确保其API的兼容性。因此,我们失去了使用SeleniumWebDriver固有的本机浏览器功能的优势。 Xpath往往变得像您的示例一样复杂,因此在我看来很难阅读/维护

但是,在某些情况下,您需要使用xpath,例如,搜索父元素或按其文本搜索元素(我不建议稍后使用)

您可以阅读Simon(SeleniumWebDriver的创建者)的博客。他还建议使用CSS而不是Xpath


因此,我建议您使用id、名称等进行更快的查找。如果这不可用,请使用css,如果没有其他适合您的情况,则最后使用xpath。

如果不清楚哪一个更好,则它们大致相同。使用对你来说最简单的一个。如果不清楚哪一个更好,那么它们大致相同。使用对你来说最简单的一个。