Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium如何基于网格坐标获取网格中的单元格值_Python_Selenium_Selenium Webdriver_Html Table - Fatal编程技术网

Python Selenium如何基于网格坐标获取网格中的单元格值

Python Selenium如何基于网格坐标获取网格中的单元格值,python,selenium,selenium-webdriver,html-table,Python,Selenium,Selenium Webdriver,Html Table,HTML 分部,基本备选方案 2015(M) 2016年(N) 2017(O) 2018年(P) 2019(Q) 1. 2. 3. 模型期 0 0 0 0 0 0 0 0 7. 纸浆销售,纸浆厂,MUSD 0 0 597 572 648 35 326 326 8. 纸浆销售、造纸厂、MUSD 0 0 0 0 0 0 0 0 0 方法应如下所示: rows = driver.find_elements_by_css_selector(".rowHeader") for r

HTML


分部,基本备选方案
2015(M)
2016年(N)
2017(O)
2018年(P)
2019(Q)
1.
2.
3.
模型期
0
0
0
0
0
0
0
0
7.
纸浆销售,纸浆厂,MUSD
0
0
597
572
648
35
326
326
8.
纸浆销售、造纸厂、MUSD
0
0
0
0
0
0
0
0
0

方法应如下所示:

rows = driver.find_elements_by_css_selector(".rowHeader") 
for row in rows:
    row_2015 = row.find_element_by_css_selector(".colHeader:nth-of-type(1)").text
    row_2016 = row.find_element_by_css_selector(".colHeader:nth-of-type(2)").text
expected_text = driver.find_element_by_css_selector(".rowHeader:nth-of-type(1)>.colHeader:nth-of-type(1)").text
  • 通过查找唯一的行定位器(例如,对于15行-15个结果),可以获得所有行
  • 在表格行中循环并获取单个单元格文本
  • 换句话说,您的css选择器应该如下所示:

    rows = driver.find_elements_by_css_selector(".rowHeader") 
    for row in rows:
        row_2015 = row.find_element_by_css_selector(".colHeader:nth-of-type(1)").text
        row_2016 = row.find_element_by_css_selector(".colHeader:nth-of-type(2)").text
    
    expected_text = driver.find_element_by_css_selector(".rowHeader:nth-of-type(1)>.colHeader:nth-of-type(1)").text
    
    没有完整的HTML页面,很难说清楚

    尝试2:

    在指定的条件下,使用以下
    xpath

    //span[contains(text(),'2017 (O)')]/../../../../../thead[2]/tr[4]/td[4]
    
    它通过列名直接定位tha值为597的单元格。 首先它找到列名,然后再向上几级,以便从第二个
    thead
    中获取值


    尝试更改
    tr[4]/td[4]
    part,您将通过xpath从表中获得任何值。

    您将使一切复杂化。只需为页面添加html代码。我将添加定位器的外观,但如果没有完整的html,则很难确定是否可以解决您的问题。我应该使用什么来代替“第n个类型”?我无法定位元素错误。我已更新我的问题。请看一看!是的,仍然是值为597的单元格,但根据行号和列名坐标对其进行定位@vitaliis
    //tr[{}]//td[count(//table[@class='htCore']///th[包含(,'{}')]//前面的同级::th