在Selenium中的众多findElement/by函数中,您什么时候会优先使用其中一个呢? [英] Of the many findElement(s)/By functions in Selenium, when would you use one over the other?

查看:32
本文介绍了在Selenium中的众多findElement/by函数中,您什么时候会优先使用其中一个呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Selenium包含findElement函数,如下所示.

.find_element_by_

id
link_text
partial_link_text
name
class_name
tag_name
css_selector
xpath
显然,由于HTML页面的创建方式,一些标记(如id、link_text、name、tag_name)受到设计的限制,因为并不是所有的标记都可能包含id、link_text等……然而,css_selector和XPath可以做几乎所有它们能做的事情,还有一些,但似乎受限于它们可以交互的内容。例如,某些按钮可能无法使用XPath单击,但可以由css_selector单击。

所以我想知道,什么时候想要使用其中一个而不是另一个(特别是XPath或css_selector)?

其他函数(id、link_text等)几乎没有用吗,因为(至少)我发现XPath/css_selector也可以做到这一点?

比方说,使用link_text比使用XPath/css_selector有什么好处吗?

推荐答案

此问题已在多个不同格式的论坛上被问及并回答。考虑到所有这些因素,如果我们对定位器进行优先级排序,则列表将如下所示:

  • id:选择具有指定id属性的元素。
  • 名称:选择具有指定name属性的第一个元素。
  • link_text:选择包含与指定LinkText匹配的文本的链接(锚标签)元素。
  • PARTIAL_LINK_TEXT:选择包含与指定PartialLinkText匹配的文本的链接(锚标签)元素。
  • TAG_NAME:使用Tag Name定位元素。
  • CLASS_NAME:使用ClassName定位元素。
  • css_selector:使用CssSelectors选择元素。
  • XPath:使用XPath表达式定位元素。

所以现在的问题是有什么新功能

答案是硒最近进化了很多WebDriver现在是W3C Recommendation CandidateSelenium内部的情况变化很快。这不再仅仅是选择定位器的问题了。我们需要使用定位器,该定位器将:

  • 唯一标识元素
  • 必须优化定位器的性能。

牢记这两个因素,最佳策略是模拟DOMW3C Recommendation Candidate确实提到了定位器列表,如下所示:

因此判决清晰明了。

这篇关于在Selenium中的众多findElement/by函数中,您什么时候会优先使用其中一个呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆