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

WebDriver-定位动态列

汪才英
2023-03-14

我正在使用webDrive来测试我们包含表的应用程序,用户可以在其中更改表中列的顺序,还可以删除/添加列(这是开发人员添加的新列旁边)。

找到我需要的列的正确方法是什么?一种方法是遍历表头以找到我要查找的列,这样我就有了列索引并且可以访问正确的单元格。

还有别的办法吗?为表中的每个元素放置唯一的id/类名怎么样?

谢啦

共有1个答案

申屠洛华
2023-03-14

对于这种情况,您可以做两件事:

>

  • 获取table元素的句柄,然后相应地导航以获取列或行。一旦您有了这个,您就可以对它们进行所有操作,例如Click()等。

    另一种方法是,查看它们的id/css的模式,因为我处理的大多数表都将具有id,如下所示:

    grid_name_1grid_name_2grid_name_3

    然后你可以这样做:

    String baseLocator = "grid_name_" + clickedRowIndex;
    driver.findElement(By.id(baseLocator)).click(); //for click operation
    

    假设用户想要单击第三行,那么单击的箭头索引将是选择第三行的第三行。

  •  类似资料:
    • 与Selenium IDE一样,WebDriver使用相同的定位策略集来指定特定Web元素的位置。 因为,正在使用带有Java的WebDriver; 每个定位策略在Java中都有自己的命令来定位Web元素。 注意 :在和方法的帮助下,在Webdriver中定位Web元素。 WebDriver中使用的定位策略列表: 按ID定位策略 按名称查找策略 按类名定位策略 按标签名称定位策略 通过链接文本定位

    • 有谁能建议我如何找到包含以下html代码的元素“ToBeSelected”: XPath驱动程序。findElement(By.xpath(“输入[contains(@id,'-tab info')]”)。单击(); 我没有成功地通过XPath进行查找-以开始和结束。

    • 我正在尝试定位一个下拉列表并从中选择一个选项,但是我无法定位下拉列表,因为没有id,名称,或任何明显的其他定位器来访问它。 我甚至尝试过使用xpath,我唯一的成功是单击下拉菜单并打开列表,但我无法从中选择任何项目。 我甚至尝试了类似的操作:String metric=“html/body/div[3]/div[2]/form/div/table/tbody/tr1/td[2]/div/a”;单击

    • 在官方的W3c webdirver文档中,明确说明了定位策略是: 然而,Selenium的有线协议允许: 现在:我知道一般的答案,其中“规格并不总是100%遵守”等等。但是,我想知道的是: 你能在Chromium中找到实现这一点的代码吗?(非常欢迎链接) 在Chromium邮件列表中是否讨论过这些内容? “非官方”命令(记录在“旧”selenium规范文件中)是否可能保留?你从哪里读到的?

    • 我试图在Java中使用页面对象模式,并在@FindBy/XPath中遇到一些问题。 之前,我在Groovy中使用了以下构造: 现在,我想做同样的事情,但根据Java中的页面对象范式: 在我的测试中,我调用deleteSystem: 问题:如何链接为PlantSystemName和为deleteSystem指定的SystemName的@FindBy符号? 谢谢,浣熊

    • 问题内容: 在W3c webdirver官方文档中,明确指出了定位策略是: 但是,Selenium的有线协议允许: 在THEORY中,Selenium的文档已过时,新规范文档中包含“真实”故事。然而… 我在最新的Chrome浏览器自己的Webdriver上进行了一些测试,可以确认这一点,name并且class name两者都可以工作。但是,它们不在规格范围内。 我记得在阅读Chromium问题时曾