首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法从表selenium中获得所有行,Python

我无法从表selenium中获得所有行,Python
EN

Stack Overflow用户
提问于 2022-03-13 18:08:18
回答 1查看 212关注 0票数 1

我正在尝试使用获取HTML表中所有行的计数。我的表包含184行,但我的代码只返回33行,行数为滚动。我已经检查了它只显示了33行的元素,一旦我向下滚动,旧的行就会从inspect元素中删除并添加新的行。因此,它保持在33为常数。在本例中,如何取184行作为行数并遍历所有行

我的解决办法是:

代码语言:javascript
复制
i = 0
        l = []
        while True:

            i += 1
            
            xpath_row = '//*[@id="fmEviewTable_tbody"]/tr['+ str(i) +']/td[7]'
            time.sleep(0.5)
            try:
                row_text = WebDriverWait(self.driver,10).until(EC.visibility_of_element_located((By.XPATH, xpath_row))).text
            except TimeoutException:
                print("element not found")
            print(f"line {i}, date: {row_text}")
            l.append(row_text)
            
            if i % 10 == 0:
                self.driver.find_element(By.TAG_NAME, 'body').send_keys(Keys.PAGE_DOWN)
                time.sleep(1)

            
            #stopping the loop at the end of row table

            try:
                self.driver.find_element(By.XPATH, '//*[@id="fmEviewTable_tbody"]/tr['+ str(i) +']/td[7]')
            except:
                break

这是个打印屏幕

页的打印屏幕

检查元件打印屏幕

EN

回答 1

Stack Overflow用户

发布于 2022-03-14 13:00:03

1。希望您了解如何访问表中的每一行/单元格(可见的33行)并从中提取数据。

--让我们有两个2d数组:主数组,last_page数组。

  1. 捕获首页数据并附加到主2d数组。
  2. 将当前页数据保存到last_page 2d数组
  3. 导航到下一页(最后一行单元格单击,然后向下页等)
  4. 捕获当前页数据。
  5. 检查它是否与last_page 2d数组匹配-如果匹配,我们处于最后一页--中断。
  6. 否则,将页数据追加到主2d数组。
  7. 从1开始重复步骤。

最后的结果表将是删除重复行(如果有的话)之后的主2d数组。--如果在原始web表中可能出现重复行,我们将面临一个挑战,即如何将它们与作为我们刮取的一部分的重复条目区分开来。

2。另一种可能是,检查用于创建表的js库是否公开了获取所有行数据的方法。(例如,eviewtableObj.getData())您可以使用execute_script调用.Something。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71459492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档