93.md 4.1 KB
Newer Older
W
wizardforcel 已提交
1
# 7K Selenium IDE – 定位元素(按 ID,名称,链接文本)
W
init  
wizardforcel 已提交
2 3 4 5 6

> 原文: [https://javabeginnerstutorial.com/selenium/7k-ide-locating-elements/](https://javabeginnerstutorial.com/selenium/7k-ide-locating-elements/)

大家好! 这篇文章是关于在网页上定位元素的(正如上一篇文章中所承诺的)。

W
wizardforcel 已提交
7
如今,确定一个人的地理位置变得非常容易。 GPS 使这成为可能。 同样,可以使用**定位符类型**来确定 Selenium IDE 必须对其进行操作的确切 Web 元素(例如,文本框,复选框,按钮,链接,下拉列表等)。
W
init  
wizardforcel 已提交
8

W
wizardforcel 已提交
9
如果您注意到由 Selenium IDE 生成的自动测试脚本,则可以看出大多数命令都需要目标。 该目标标识正在测试的 Web 元素,其格式为`LocatorType = Location``LocatorType`在大多数情况下可以省略,我们很快就会看到。
W
init  
wizardforcel 已提交
10

W
wizardforcel 已提交
11
到现在,您应该已经意识到,对于创建成功的测试脚本而言,准确地识别网页上的 Web 元素至关重要。 记住我的话,说起来容易做起来难! 有时,我们最终会遇到错误的元素或最坏的情况,根本没有任何元素。
W
init  
wizardforcel 已提交
12

W
wizardforcel 已提交
13
当我们在*魔法草地*中时,为什么还要担心? Selenium IDE 提供了许多定位器类型,可以在网页上准确定位 Web 元素。
W
init  
wizardforcel 已提交
14 15 16 17 18

定位依据

*   ID
*   Name
W
wizardforcel 已提交
19 20
*   链接文本
*   CSS
W
init  
wizardforcel 已提交
21 22 23
*   判断
*   XPath

W
wizardforcel 已提交
24
## 通过 ID 定位
W
init  
wizardforcel 已提交
25

W
wizardforcel 已提交
26
知道网络元素的 ID 属性后,我们总是倾向于按 ID 进行定位。 由于 ID 是唯一的,因此这是定位被测元素的最常用方法。
W
init  
wizardforcel 已提交
27

W
wizardforcel 已提交
28
*格式*`id = web_element_id`
W
init  
wizardforcel 已提交
29

W
wizardforcel 已提交
30
*示例*:打开 Goog​​le 帐户创建页面。 让我们通过 ID 识别名字文本框。
W
init  
wizardforcel 已提交
31 32 33

![Locating by ID](img/6d549e97d582e483f16b1e097f68564d.png)    

W
wizardforcel 已提交
34
借助 HTML(页面源代码)或 Firebug(我们将在以后的文章中详细介绍),可以识别 ID,如上图所示。
W
init  
wizardforcel 已提交
35

W
wizardforcel 已提交
36
在 Firefox 浏览器中打开 Selenium IDE,然后在目标文本框中输入“`id = FirstName`”。 单击**查找**按钮,并注意“名称”部分的“第一个”文本框以黄色突出显示,带有绿色边框。 这表明 Selenium IDE 能够成功地按预期找到元素。
W
init  
wizardforcel 已提交
37 38 39

![By ID highlighting](img/a5ed0a0fb9fecd423bc9ace339ce86b4.png)

W
wizardforcel 已提交
40
## 按名称定位
W
init  
wizardforcel 已提交
41

W
wizardforcel 已提交
42
名称定位器类型使用匹配的名称属性来定位第一个 Web 元素。 这与按 ID 定位非常相似,而 ID 由名称代替。
W
init  
wizardforcel 已提交
43

W
wizardforcel 已提交
44
*格式*`name = web_ element_name`
W
init  
wizardforcel 已提交
45

W
wizardforcel 已提交
46
*示例*:打开 Goog​​le 帐户创建页面。 让我们通过使用页面来源的名称来标识“选择您的用户名”文本框。
W
init  
wizardforcel 已提交
47 48 49

![Locating by name](img/86f29ac38b085a6faf96db00de31ad25.png)

W
wizardforcel 已提交
50
使用 Selenium IDE“查找”元素以验证我们是否准确定位了该元素。
W
init  
wizardforcel 已提交
51 52 53

![By Name highlighted](img/e709c975c172a033f00b1dba9bf6bb14.png)

W
wizardforcel 已提交
54
如果多个 Web 元素具有相同的`name`属性,则使用**过滤器**进一步细化定位策略。 默认过滤器类型为*值*
W
init  
wizardforcel 已提交
55

W
wizardforcel 已提交
56
*示例*
W
init  
wizardforcel 已提交
57 58 59

![Name filters](img/a0b8bace7eed76adbcae352c3de98115.png)

W
wizardforcel 已提交
60
如上所述,如果使用“`name = travelType`”定位策略,则将在网页上选择一个单选按钮,因为它是具有给定`name`属性的第一个 Web 元素。 但是,如果我们希望根据测试用例要求使用往返单选按钮,则将使用*按名称和过滤器*策略定位。
W
init  
wizardforcel 已提交
61

W
wizardforcel 已提交
62
在 Selenium IDE 的“目标”框中输入“`name = travelType value = roundtrip`”,然后单击“查找”按钮,将高亮显示往返单选按钮。
W
init  
wizardforcel 已提交
63

W
wizardforcel 已提交
64
## 通过链接文本定位
W
init  
wizardforcel 已提交
65 66 67

在网页上找到超链接的最佳方法是使用“链接文本”策略进行定位。

W
wizardforcel 已提交
68
*格式*`link = text_of_the_link`
W
init  
wizardforcel 已提交
69

W
wizardforcel 已提交
70
*示例*:打开 Goog​​le 帐户创建页面。 让我们使用网页来源通过链接文字访问“隐私权政策”链接。
W
init  
wizardforcel 已提交
71 72 73

![Locating LinkText](img/e297c5e33c92c96ba0a7a105f54d18e7.png)

W
wizardforcel 已提交
74
使用 Selenium IDE “查找”元素以验证我们是否准确定位了该元素。
W
init  
wizardforcel 已提交
75 76 77 78 79 80 81

![By LinkText highlighted](img/a122ae1ab9c67bd64c1abb0d5a7fa25c.png)

我认为一天就足够了。 其余的将在后续文章中讨论。 练习这些策略,并在评论部分有任何疑问时通知我。

到那时见! 祝你有美好的一天!