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

Selenium动态遍历表

章昊
2023-03-14

因此,我一直在努力通过selenium找到一种动态方法,即遍历一个表并从该表中收集特定值,以创建从远程服务到本地数据标签的映射。下面是我试图迭代的代码,这些长度可能会改变:

        string Fee1 = driver.FindElement(By.XPath("//tr//input[@id='fees']")).GetAttribute("title");
        string CCFee1 = driver.FindElement(By.XPath("//tr/td[3]/select")).GetAttribute("title");

        string Fee2 = driver.FindElement(By.XPath("//tr[2]//input[@id='fees']")).GetAttribute("title");
        string CCFee2 = driver.FindElement(By.XPath("//tr[2]/td[3]/select")).GetAttribute("title");

        string Fee3 = driver.FindElement(By.XPath("//tr[3]//input[@id='fees']")).GetAttribute("title");
        string CCFee3 = driver.FindElement(By.XPath("//tr[3]/td[3]/select")).GetAttribute("title");

        string Fee4 = driver.FindElement(By.XPath("//tr[4]//input[@id='fees']")).GetAttribute("title");
        string CCFee4 = driver.FindElement(By.XPath("//tr[4]/td[3]/select")).GetAttribute("title");

        string Fee5 = driver.FindElement(By.XPath("//tr[5]//input[@id='fees']")).GetAttribute("title");
        string CCFee5 = driver.FindElement(By.XPath("//tr[5]/td[3]/select")).GetAttribute("title");

        string Fee6 = driver.FindElement(By.XPath("//tr[6]//input[@id='fees']")).GetAttribute("title");
        string CCFee6 = driver.FindElement(By.XPath("//tr[6]/td[3]/select")).GetAttribute("title");

我确信有一种方法可以在表中进行迭代,以动态的方式收集值,这样应该只需要:

字符串fee**“x”**=driver.findElement(by.xpath(“//tr//input[@id='feed']”)).getAttribute(“title”);

字符串CCFEE**“X”**=Driver.FindElement(By.XPath(“//Tr/TD[3]/Select”)).GetAttribute(“Title”);

其中“x”增加到表的末尾,并且,也应该是动态的,从第二行开始,这样:

字符串Fee2=driver.findElement(by.xpath(“//tr__[2]__//input[@id='feed']”)).getAttribute(“title”);

字符串CCFee2=driver.findElement(by.xpath(“//tr__[2]__/td[3]/select”)).getAttribute(“title”);

如有任何帮助,将不胜感激。谢谢!

共有1个答案

逄念
2023-03-14

好吧,假设页面上只有一个表,您可以执行如下操作(未经测试,或者是确切的语法,因为我不懂C#):

List<WebElement> allRows = driver.FindElement(By.XPath("//tr"));
int RowIndex = 0;
for (aRow in allRows) {
    fee = aRow.FindElement(By.XPath("/input[@id='fees']")).GetAttribute("title");
    ccFee = aRow.FindElementBy.XPath("/td[3]/select")).GetAttribute("title")
    RowIndex += RowIndex;
    // store your fee and ccFee in some map, or some other structure
    // based on the RowIndex
}
 类似资料:
  • 我正在使用XPath/CSS和Selenium来定位网站上的元素。我想创建一个方法,在这个方法中,我遍历一个定位器列表(XPath/CSS),然后程序选择哪个有效。换句话说,它从定位器1开始-如果定位器存在,它将返回true并存在循环。否则,它将移动到列表中的下一个定位器。一旦用完所有CSS定位器,它就会转到XPath等等。 目前,我正在考虑如下实施: 然后,我计划为每种定位器类型调用此方法(一次

  • 问题内容: 我已经用BeautifulSoup做到了,但是有点麻烦,我想弄清楚是否可以直接用Selenium做到。 假设我有以下HTML,这些HTML在页面源中使用相同的元素但内容不同重复多次: 我需要建立一个字典,每个人的条目如下: 通过执行以下操作,我可以轻松地让Selenium生成每个顶级元素的内容列表: 但是,我无法遍历列表,因为上述方法无法将范围/源范围缩小到该元素的内容。 如果我尝试执

  • 我有一个网页,其中包含一个表格,该表格仅在我单击“检查元素”时出现,并且在查看源页面中不可见。该表仅包含两行,每行有几个单元格,看起来类似于此: 我试图做的是遍历行并返回每个单元格中包含的文本。我似乎真的不能用Selenium来做到这一点。元素不包含ID,我不知道如何获取它们。我不太熟悉使用xpath之类的。 这是一个返回的调试尝试: 从行中获取文本的简单方法是什么?

  • 使用python+Selenium Web驱动程序,我尝试为保险网站自动选择某些单选按钮。问题是单选按钮的ID是动态的。例如,当生成一个新的保险应用程序时,会生成一个新的页面,并且屏幕上的单选按钮已经动态创建了ID(参见下面的HTML示例) 因此,使用上面的示例,我想单击id为“subj_received_33965”的单选按钮。但是,因为元素是动态生成的,所以在下一次自动化运行时id会有所不同(

  • 本文向大家介绍jquery 动态遍历select 赋值的实例,包括了jquery 动态遍历select 赋值的实例的使用技巧和注意事项,需要的朋友参考一下 获取select 选中的值: Ajax 动态为select赋值: 以上这篇jquery 动态遍历select 赋值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍layui树形菜单动态遍历的例子,包括了layui树形菜单动态遍历的例子的使用技巧和注意事项,需要的朋友参考一下 1、前端jsp页面 以上这篇layui树形菜单动态遍历的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。