当前位置: 首页 > 知识库问答 >
问题:

webdriver的官方定位策略

郝君博
2023-03-14

在官方的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%遵守”等等。但是,我想知道的是:

  • 你能在Chromium中找到实现这一点的代码吗?(非常欢迎链接)
  • 在Chromium邮件列表中是否讨论过这些内容?
  • “非官方”命令(记录在“旧”selenium规范文件中)是否可能保留?你从哪里读到的?

共有1个答案

松英叡
2023-03-14

是的,你看对了。

根据当前的WebDriver-W3C候选推荐,登记的定位器策略如下:

  • “CSS选择器”:CSS选择器
  • “链接文本”:链接文本选择器
  • “部分链接文本”:部分链接文本选择器
  • “标记名称”:标记名称
  • “XPath”:XPath选择器
    null

更改通过相应的客户端特定绑定传播。对于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”;单击