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

以编程方式查找selenium的webelements的定位器

孔宇
2023-03-14

Webdriver driver=新Webdriver;Driver.FindElement(By.id(“ID已粘贴在此处”));

然而,手动查找ids和其他东西并阅读所有HTML内容是很难的,而且相当混乱,因为我还没有真正深入研究web设计,所以Javascript、CSS、XML和HTML对我来说都是比较新的。我知道一些(非常)基础,但我无法找到我的方式周围的一个良好的设计网站。

就是能够点击“inspect element”之类的东西,然后得到一个该WebElement的定位器列表。对我来说,通常最简单的方法是右键单击该元素突出显示的HTMl并选择“Copy xpath”,但是自动生成的xpath表达式并不总是定位元素的最佳方法。我在这里发现了一个处理这个问题的类似问题:

共有1个答案

令狐昂雄
2023-03-14

从某种程度上说,你获得高质量定位器的唯一方法就是手工制作。有大量的css选择器生成器工具以浏览器扩展的形式存在,您可以单击元素并获得css或XPath形式的自动生成定位器。虽然很大,但通过这样的方法,最终会得到非常冗长和脆弱的选择器。

然而,这些工具肯定是有用的,因为您可以将它提供的内容作为基线,然后开始削减,直到它达到您需要的冗长程度,同时尽可能少地依赖不相关的元素。在最好的情况下,您可以使用Firefox或Chrome的element inspector工具快速访问DOM中的一个元素,如果您的元素使用了一个独特的属性,比如id,那么这通常就是您所需要的全部。(如果应用程序使用jquery,则可以根据您的jquery版本执行$(“locator”)$$(“locator”)$J(“locator”)之一,从而轻松地使用javascript控制台测试定位器)

虽然弄清楚定位器一直很烦人,但它变得容易多了,而且在我看来,从长远来看会提高您的工作效率,因为当测试中的应用程序经历开发版本时,现在工作的定位器可能会停止工作,而且偶尔也会停止工作,而找出它的不同之处可能是调试本身的一个挑战。因此,最大限度地减少由于测试中应用程序的更改而导致定位器中断的部分原因是,可以轻松地手动检查dom并创建尽可能独立于位置的定位器。我所说的位置独立是指以不会改变的属性为目标,并且不依赖元素层次结构或同级元素的序数值(在列表项的情况下),这些序数值会随着UI的修改而改变。

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

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

  • 我在我的应用程序中使用EJB3.1。 我想在我的应用程序中将一个EJB的JNDI查找名称发送到另一个应用程序,以便它可以在运行时使用它 用程序找出任意EJB的查找名的过程是什么?

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

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

  • 问题内容: 我有一个脚本,打算由多名用户在多台计算机上运行,​​并且他们各自的主目录中都没有他们的Dropbox文件夹。我讨厌必须在脚本中硬编码路径。我宁愿以编程方式找出路径。 任何建议欢迎。 编辑:我不在脚本中使用Dropbox API,该脚本只是读取用户之间共享的特定Dropbox文件夹中的文件。我唯一需要的是Dropbox文件夹的路径,因为我当然已经知道Dropbox文件结构内的相对路径。