在官方的W3c webdirver文档中,明确说明了定位策略是:
State Keyword
CSS selector "css selector"
Link text selector "link text"
Partial link text selector "partial link text"
Tag name "tag name"
XPath selector "xpath"
然而,Selenium的有线协议允许:
class name
css selector
id
name
link text
partial link text
tag name
xpath
现在:我知道一般的答案,其中“规格并不总是100%遵守”等等。但是,我想知道的是:
是的,你看对了。
根据当前的WebDriver-W3C候选推荐
,登记的定位器策略
如下:
“CSS选择器”
:CSS选择器“链接文本”
:链接文本选择器“部分链接文本”
:部分链接文本选择器“标记名称”
:标记名称“XPath”
:XPath选择器更改通过相应的客户端特定绑定传播。对于selenium-java
客户端,这里是客户端代码,其中为用户工作的开关箱:
switch (using) {
case "class name":
toReturn.put("using", "css selector");
toReturn.put("value", "." + cssEscape(value));
break;
case "id":
toReturn.put("using", "css selector");
toReturn.put("value", "#" + cssEscape(value));
break;
case "link text":
// Do nothing
break;
case "name":
toReturn.put("using", "css selector");
toReturn.put("value", "*[name='" + value + "']");
break;
case "partial link text":
// Do nothing
break;
case "tag name":
toReturn.put("using", "css selector");
toReturn.put("value", cssEscape(value));
break;
case "xpath":
// Do nothing
break;
}
return toReturn;
问题内容: 在W3c webdirver官方文档中,明确指出了定位策略是: 但是,Selenium的有线协议允许: 在THEORY中,Selenium的文档已过时,新规范文档中包含“真实”故事。然而… 我在最新的Chrome浏览器自己的Webdriver上进行了一些测试,可以确认这一点,name并且class name两者都可以工作。但是,它们不在规格范围内。 我记得在阅读Chromium问题时曾
与Selenium IDE一样,WebDriver使用相同的定位策略集来指定特定Web元素的位置。 因为,正在使用带有Java的WebDriver; 每个定位策略在Java中都有自己的命令来定位Web元素。 注意 :在和方法的帮助下,在Webdriver中定位Web元素。 WebDriver中使用的定位策略列表: 按ID定位策略 按名称查找策略 按类名定位策略 按标签名称定位策略 通过链接文本定位
对于大多数Selenium命令,都需要一个目标位置,该位置在Web应用程序的上下文中唯一地定义Web元素。 目标由定位策略组成,其格式如下: 在Selenium IDE中,目标使用六种指定特定Web元素位置的模式: 按标识符定位 按ID元素定位 按名称查找 通过XPath定位 通过CSS定位 按DOM定位 在详细介绍每种模式之前,读者应该精通HTML和CSS。
我正在使用webDrive来测试我们包含表的应用程序,用户可以在其中更改表中列的顺序,还可以删除/添加列(这是开发人员添加的新列旁边)。 找到我需要的列的正确方法是什么?一种方法是遍历表头以找到我要查找的列,这样我就有了列索引并且可以访问正确的单元格。 还有别的办法吗?为表中的每个元素放置唯一的id/类名怎么样? 谢啦
我试图引用并单击网页上的元素。 我们应该能够使用简单的XPath进行引用。例如 然而,这似乎并不奏效。 我使用的chrome扩展表示该元素不存在。 我的代码找不到元素。 下面是我使用Selenium web驱动程序的Java代码。 以下是错误: 太奇怪了!关于为什么我不能引用元素,或者为什么xPath不exist的任何想法。
我正在尝试定位一个下拉列表并从中选择一个选项,但是我无法定位下拉列表,因为没有id,名称,或任何明显的其他定位器来访问它。 我甚至尝试过使用xpath,我唯一的成功是单击下拉菜单并打开列表,但我无法从中选择任何项目。 我甚至尝试了类似的操作:String metric=“html/body/div[3]/div[2]/form/div/table/tbody/tr1/td[2]/div/a”;单击