python - For 循环不适用于 driver.find_element_by_xpath 中的 XPATH
问题描述
我得到的输出只是第一列的第一行项目。请让我知道问题是什么以及为什么 for 循环不适用于这段代码。
from selenium import webdriver
url="https://www.up-rera.in/frm_sanitize_prj_search.aspx?regid=918"
driver=webdriver.Chrome("/Users/prakhargarg/Desktop/chromedriver")
driver.get(url)
link = driver.find_element_by_link_text("Click Here To View Complete Project Details")
link.click()
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
driver.implicitly_wait(5)
rows=len(driver.find_elements_by_xpath('//*[@id="ShowTableApartment"]/tr'))
cols=len(driver.find_elements_by_xpath('//*[@id="ShowTableApartment"]/tr[1]/th'))
print(rows)
print(cols)
for r in range(2,rows+1):
for c in range(1,cols+1):
value=driver.find_element_by_xpath('//*[@id="ShowTableApartment"]/tr["+str(r)+"]/td["+str(c)+"]').text
print(value, end=' ')
driver.quit()
解决方案
试试这个,这是我的代码:在此之前,您必须pip install tabulate
使用工作表进行安装。
from selenium import webdriver
from tabulate import tabulate
url="https://www.up-rera.in/frm_sanitize_prj_search.aspx?regid=918"
driver=webdriver.Chrome()
driver.get(url)
link = driver.find_element_by_link_text("Click Here To View Complete Project Details")
link.click()
window_after = driver.window_handles[1]
driver.switch_to.window(window_after)
driver.implicitly_wait(5)
rows=len(driver.find_elements_by_xpath('//*[@id="ShowTableApartment"]/tr'))
cols=len(driver.find_elements_by_xpath('//*[@id="ShowTableApartment"]/tr[1]/th'))
rows=driver.find_elements_by_xpath('//*[@id="ShowTableApartment"]/tr')
cols=driver.find_elements_by_xpath('//*[@id="ShowTableApartment"]/tr[1]/th')
table = [[row.text.strip()] for row in rows]
headers = [col.text for col in cols]
print(tabulate(table, headers, tablefmt="pipe"))
推荐阅读
- c - 为什么我的代码没有给出正确的输出?谁能提供提示?
- python - 为什么 LSTM 无法预测我的简单正弦曲线?
- vue.js - Vuejs 前端使用 nginx.ingress.kubernetes.io/rewrite-target 注释在 kubernetes 中给出 404
- gradle - 找不到 guice-4.2.1-no_aop.jar
- javascript - 如何解析谷歌地图地理编码api Json响应以获取纬度和经度值?
- node.js - 活动函数Http调用问题Nodejs
- mysql - 来自两个字段的 CONCAT
- javascript - 动态清除表单验证在 FormArray angular 11 的 FormGroup 内不起作用
- swift - SwiftUI:如何阻止文本字段中的某些字符?
- php - Google Flutter/Dart 将不接受 http post