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

Selenium 2:以编程方式查找web元素定位器

刁文光
2023-03-14

我厌倦了手动查找定位器(id、xpath、css、linkText等)对于来自我的网页源的web元素。它也消耗了更多的努力。因此,为了避免编写直接与页面源交互并生成定位器细节的代码(如ID=“xyz”,xpath=“html/body/table/tr/td/a”等),我认为可以使用String对象的split()函数生成ID定位器。但是,我不知道的是如何为所有页面组件生成XPath、css和linkText定位器?

共有1个答案

赫连黎昕
2023-03-14

虽然我通常建议自己构造XPath表达式(因为您可以更好地利用这些东西来对付类属性),但为selenium确定XPath表达式的最合理、最方便的自动方法可能是使用Firebug或Chrome Developer工具的“Find XPath”特性。它们都至少使用@id属性来缩短XPath表达式。

如果你想自己写一些代码,例如。为了嵌入到您使用的其他工具中,您可能想看看解决PHP中问题的“PHP XML-Find out the path to a known Value”的答案,或者另一个包含JavaScript答案的答案:“JavaScript get XPath of a Node”。

如果您使用的工具不在DOM上工作(Selenium/Firebug/Chrome Dev'tools/JavaScript也可以),请注意我在“为什么我的XPath查询(刮取HTML表)只在Firebug中工作,但不能在我正在开发的应用程序中工作?”中描述的问题。

 类似资料:
  • Webdriver driver=新Webdriver;Driver.FindElement(By.id(“ID已粘贴在此处”)); 然而,手动查找ids和其他东西并阅读所有HTML内容是很难的,而且相当混乱,因为我还没有真正深入研究web设计,所以Javascript、CSS、XML和HTML对我来说都是比较新的。我知道一些(非常)基础,但我无法找到我的方式周围的一个良好的设计网站。 就是能够点

  • 问题内容: 我在Java中有一个缓冲的图像,我想根据颜色值记录每个像素与另一个像素的相似程度。因此具有“相似”颜色的像素将具有较高的相似度值。例如,红色和粉红色的相似度值为1000,但是红色和蓝色的相似度为300或更小。 我怎样才能做到这一点。当我从缓冲的图像像素获得RGB时,它返回一个负整数,我不确定该如何实现它。 问题答案: 首先,如何获得整数值? 获得RGB值后,您可以尝试 ((r2-r1)

  • 问题内容: 我想使用 ImageJ的 find edge选项,使用edges-found数组并将其以编程方式保存到另一个文件。 但是,函数 findEdges 是抽象的,我无法找到边缘找到的图像。 编辑: 我写了以下几行: 但是,当我尝试打印BufferedImage的RGB值时,它只为每个像素RGB打印“ -16777216”。 问题答案: 好的,我找到了解决方案,问题是我没有将ColorPro

  • 我使用的是一个自定义视图,我添加了滚动条,如下所示: 现在有没有办法找出滚动条的像素厚度?对于垂直滚动条,我想找出宽度,对于水平滚动条,我想找出高度,两者都以像素为单位。 有没有办法通过编程实现这一点?

  • 本文向大家介绍编写Golang程序以查找给定范围内的重复元素,包括了编写Golang程序以查找给定范围内的重复元素的使用技巧和注意事项,需要的朋友参考一下 我们可以通过两种不同的方式解决此问题。让我们检查第一种方法。 方法1:  例子 输入数组= [1、2、3、4、4] =>范围是1到5,但是4是该范围内的重复元素。 解决这个问题的方法 步骤1: 定义一个接受数组的方法。 第2步: 声明访问过的映

  • 本文向大家介绍编写Golang程序以查找给定数组中的重复元素,包括了编写Golang程序以查找给定数组中的重复元素的使用技巧和注意事项,需要的朋友参考一下 例子 输入数组= [1、3、5、6、1] =>重复元素为1; 输入数组= [1、3、5、6、7] =>返回-1 解决这个问题的方法 步骤1: 定义一个接受数组的方法。 第2步: 声明访问过的映射。 步骤3:迭代给定的数组。如果该元素存在于已访问