Of the many findElement(s)/By functions in Selenium, when would you use one over the other?(在Selenium中的众多findElement/by函数中,您什么时候会优先使用其中一个呢?)
本文介绍了在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 Candidate
。Selenium
内部的情况变化很快。这不再仅仅是选择定位器的问题了。我们需要使用定位器,该定位器将:
- 唯一标识元素。
- 必须优化定位器的性能。
牢记这两个因素,最佳策略是模拟DOM。W3C Recommendation Candidate
确实提到了定位器列表,如下所示:
因此判决清晰明了。
这篇关于在Selenium中的众多findElement/by函数中,您什么时候会优先使用其中一个呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:在Selenium中的众多findElement/by函数中,您什么时候会优先使用其中一个呢?
基础教程推荐
猜你喜欢
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01