如何找到没有唯一标识符的硒元素?
答
嗯,有这么多不同的技术来定位HTML元素。如果我是你,我会用多个例子列出可能的技巧。 XPath表达式和CSS选择器可以解救。
标签名称,id
,name
,class
或任何其他与数据相关的属性通常是定位元素的良好可靠选择。如果这些都不存在,它将取决于元素所在的位置,父母,兄弟姐妹,祖先等的具体位置以及元素文本,相应标签(如果有),父母的独特性 - 操作中的变量太多。
例如,假设您有以下HTML:
<span>
<label>Category:</label>
<b>Desired text</b>
</span>
所需b
这里本身标签没有id
或name
,但它很容易地看到,我们或许可以依靠其前面的兄弟和使用XPath表达式:
//label[. = "Category:"]/following-sibling::*
有时候我们知道所期望的元素在元素中的特定位置处。例如:
<tr>
<td>text1</td>
<td>Desired text</td>
<td>text3</td>
</tr>
在这种情况下,我们可以简单地从tr
获得第二td
:
//tr/td[2]
有时候,也有一些是在元素的 “文本”:
<div>The quick brown fox jumps over the lazy dog</div>
比方说,我们知道,“狐狸”是存在的:
//div[contains(., "fox")]
依此类推。
答
面试的问题始终是一个挑战,并且通常试图非法从受访者,通常有一点做与问题的主题,使他们能够获得您的层次感(正或负)的响应理解力或个性。
根据不同的面试官,他们可能一直在寻找,看看你在编程以及圆润。我不知道你在申请什么职位。假设Selenium没有任何“魔术”方法来寻找所述元素,也许面试官想知道你是否可以编写或理解以编程方式解析web代码。
也许他们正在寻找您以编程方式量化元素为基于参数搜索找到它。
这两个概念,将显示编程基础面试官的理解而没有谈论具体的代码。