当前位置: 首页 > 面试题库 >

在Selenium Webdriver中,在性能方面,Linktext或CSS哪个更好?

谢嘉
2023-03-14
问题内容

Selenium其中总是最好使用Locator定位元素ID

最小定位器是XPath(如果我输入错误,请纠正我)。

那么,人们 在进行定位器 识别时,是否有任何优先顺序或顺序element


问题答案:

我只是从写一些点,这其中已经被GK27在给予参考,这里写的目的是要清楚,如果页面没有找到一段时间后,用户可以从这里查看。

因此,定位元素的更好方法是优先级明智,应该在列表中, [id, name, linkText, partialLinkText, tagName, className, cssSelector, xpath] 此处id列表中的第一个值包含优先级,依此类推。

通过ID查找元素:

在网页上定位元素的最有效方法和首选方法是ByIDID将是可以轻松识别的唯一网页。ID是最安全,最快的定位器选项,应始终是首选

通过名称查找元素:

如果没有要使用的ID,那么接下来值得一看的是所需元素是否具有name属性。
但是请确保该名称始终不能唯一。如果有多个名称,Selenium将始终对第一个匹配元素执行操作

通过LinkText查找元素:

查找带有链接文本的元素非常简单。
但是请确保网页上只有一个唯一链接。如果存在多个具有相同链接文本的链接(例如重复的页眉和页脚菜单链接),则Selenium将对具有链接的第一个匹配元素执行操作。

通过部分LinkText查找元素:

以和相同的方式LinkTextPartialLinkText也以相同的模式工作,唯一的区别是它与部分文本的匹配链接意味着使用contains。

通过TagName查找元素:

TagName 可以与Group元素(如,Select和复选框/下拉列表)一起使用。

通过类名称查找元素:

如果我们只使用findElementByClassName,可能会有多个具有相同类名的元素,请确保它只是一个。如果不是,则需要使用classname和及其子元素进行扩展。

CSS选择器:

CSS主要用于为网页提供样式规则,我们可以使用CSS来识别网页中的一个或多个元素。
如果您开始使用CSS选择器来标识元素,则与相比,您会喜欢它的速度XPath。我们可以使用CSS选择器来确保脚本在IE浏览器中以相同的速度运行。CSS选择器始终是在页面中定位复杂元素的最佳方法。

如果需要使用复杂的选择器查找元素,我通常建议尽可能使用CSS选择器。
它不像XPath那样灵活,但是可以涵盖许多相同的情况,而不会表现出XPath可以对IE造成的极端性能损失。

XPath选择器:

查找元素byXPath对于使用非常复杂的选择器查找元素很有用,并且是最灵活的选择策略,但可能会非常缓慢,尤其是在中IE。在IE6、7或8中,通过查找XPath可能会比在中进行相同的操作慢一个数量级FirefoxIE没有提供本机XPath- over-HTML解决方案,因此该项目必须使用JavaScript XPath实现,而旧版本的JavaScript引擎IE确实要慢得多。

xpath有两种类型

  1. 原生Xpath,就像直接引导xpath一样。例如: html/head/body/table/tr/td

在这里指定本地路径的优点是,找到元素非常容易,因为我们提到了直接路径。但是,如果路径中有任何更改(如果已添加/删除了某些内容),则该xpath将中断。

  1. 相对Xpath。在相对xpath中,我们将提供相对路径,就像我们通过告诉它们之间的路径告诉xpath查找元素一样。这样做的好处是,如果html中的任何更改都可以正常工作,除非该特定的路径发生了更改,否则除非更改。查找地址非常困难,因为它需要检查每个节点以找到该路径。


 类似资料:
  • 在服务器端代码中,一般为了更好的性能,我们不应该使用“从表中选择*”,而应该根据需要查询必要的列(选择名称,从员工中添加)。这是我在数据库性能指南文章中读到的。 现在我用hibernate做了一个查询,我读到在hibernate中最好使用session.load(id)来根据主键检索记录。这将检索与给定“id”(表中的记录)的实体关联的所有列。 现在它是否与通用数据库性能指南相矛盾。使用hiber

  • 问题内容: 将其放入代码中-哪个具有更好的性能(如果有区别的话)? 鉴于这种: 哪个更快? 或这个: 问题答案: 它们之间没有区别,您可以在字节码中进行验证: 运行以查看其编译结果: 这是输出: 如您所见-第5,6,9行(隐式)与10、11、14行(显式)相同。

  • 不过,这种例子帮助我更好地理解: 不过,我还是不明白为什么这是一种创新。它只是一个当“方法变量”结束时就会死亡的方法,对吧?为什么我要用这个而不是一个真正的方法?这将是性能更好的选择。Lambda或简单循环。

  • 问题内容: 考虑以下两行代码 和 在性能上,以上两个语句有什么区别吗?我见过很多人使用后者,当被问及他们说这是最佳实践时,没有充分的理由。 问题答案: 没有不同。 第二个原因仅仅是因为C / C ++程序员总是执行分配而不是比较。 例如 而java编译器会生成编译错误。 因此,由于可读性强,我个人更喜欢第一个,人们倾向于从左到右阅读,而不是。

  • 我是一个初学者,我正在开发一个Android应用程序,它会在一定的延迟(以天为单位)后继续向用户发送短信。我希望用户一旦注册就应该收到短信,不管他是否登录。短信内容和手机号码是从database.So获取的,经过研究,我发现了两种方法。 > 预定执行人服务 报警管理器 问题是,当手机关闭或重新启动时,警报管理器将关闭。预定的礼宾服务也是如此吗?使用执行器服务时,我应该在线程池中使用多少个线程?

  • 问题内容: 使用哪种更好或更方便: 要么 问题答案: 您是否完全需要类型属性?如果您使用的是HTML5,则不会。否则,是的。HTML 4.01和XHTML 1.0 根据需要指定属性,而HTML5具有可选属性,默认为。HTML5现在得到了广泛的实现,因此,如果您使用HTML5doctype,则是有效且不错的选择。 至于type属性中应该包含的内容,2006年注册的MIME类型旨在替代所有主要浏览器(