i Frage gleiche Frage nicht in der Lage aufgrund geschrieben, es zu senden richtig bin ich wieder meine Frage veröffentlichen, ich habe einen Schaber mit Selen für die Website erstellt https://maharerait.mahaonline.gov.in/searchlist/searchlistSelen Web-Treiber Schaber
wenn ich dies führen Sie es durch jeden geht Drop-down und wenn es nützliche Daten findet in csv geschabt werden gibt es bestimmte Fehler:
Traceback (most recent call last):
File "C:\Users\prince.bhatia\Desktop\maharera\Maha_Rera.py", line 66, in
<module>
selectVillage.select_by_index(villageElement)
File
"C:\Users\prince.bhatia\AppData\Local\Programs\Python\Python36\lib\site-
packages\selenium\webdriver\support\select.py", line 103, in select_by_index
raise NoSuchElementException("Could not locate element with index %d" %
index)
selenium.common.exceptions.NoSuchElementException: Message: Could not locate
element with index 33
Hier sind meine Codes:
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import os
import time
import csv
import sys
driver = webdriver.Chrome("./chromedriver")
driver.get('https://maharerait.mahaonline.gov.in/searchlist/searchlist')
# try:
# element = WebDriverWait(driver, 100).until(
# EC.presence_of_element_located((By.ID, "Promoter"))
# )
# finally:
# print('0000000000000000000000')
# driver.quit()
time.sleep(1)
driver.find_element_by_id('Promoter').click()
divisionLength = len(Select(driver.find_element_by_id('Division')).options)
print('*********{}'.format(divisionLength))
firstRow = 0
titleRow = []
contentRows = []
for divisionElement in range(1,divisionLength):
selectDivision = Select(driver.find_element_by_id('Division'))
selectDivision.options
selectDivision.select_by_index(divisionElement)
time.sleep(1)
districtLength = len(Select(driver.find_element_by_id('District')).options)
while districtLength == 1:
pass
print(districtLength)
for districtElement in range(1,districtLength):
selectDistrict = Select(driver.find_element_by_id('District'))
selectDistrict.options
selectDistrict.select_by_index(districtElement)
time.sleep(1)
talukaLength = len(Select(driver.find_element_by_id('Taluka')).options)
print('/-----taluka numbers: {}-------/'.format(talukaLength))
for talukaElement in range(1, talukaLength):
selectTaluka = Select(driver.find_element_by_id('Taluka'))
selectTaluka.options
selectTaluka.select_by_index(talukaElement)
time.sleep(1)
villageLength = len(Select(driver.find_element_by_id('Village')).options)
print('/-----village numbers: {}-------/'.format(talukaLength))
for villageElement in range(1, villageLength):
selectVillage = Select(driver.find_element_by_id('Village'))
selectVillage.options
selectVillage.select_by_index(villageElement)
time.sleep(2)
projectLength = len(Select(driver.find_element_by_id('Project')).options)
print('/------------------------------/')
print('/-----project number: {}-------/'.format(projectLength))
print('/------------------------------/')
if projectLength == 1:
continue
for projectElement in range(1,projectLength):
selectProject = Select(driver.find_element_by_id('Project'))
selectProject.options
while len(selectProject.options) == 1:
pass
# c = len(select.options)
# print('---------------{}'.format(c))
# titleRow = []
# contentRows = []
# firstRow = 0
# for i in range(1,c):
# select = Select(driver.find_element_by_id('Project'))
# while len(select.options) == 1:
# pass
time.sleep(1)
selectProject.select_by_index(projectElement)
driver.find_element_by_id('btnSearch').click()
tableRows = driver.find_element_by_class_name('table').find_elements_by_tag_name('tr')
if firstRow == 0:
headRow = tableRows[0].find_elements_by_tag_name('th')
for headRowData in range(0,len(headRow)):
text = headRow[headRowData].find_element_by_tag_name('span').text
titleRow.append(text)
firstRow = firstRow + 1
for dataRowsNumbers in range(1,len(tableRows)):
dataRow = tableRows[dataRowsNumbers].find_elements_by_tag_name('td')
tempList = []
for dataRowContents in range(0,len(dataRow)):
try:
a_link = dataRow[dataRowContents].find_element_by_tag_name('a').get_attribute('href')
tempList.append(str(a_link))
except:
tempList.append(str(dataRow[dataRowContents].text))
# if dataRow[dataRowContents].text == 'View':
# a_link = dataRow[dataRowContents].find_element_by_tag_name('a').get_attribute('href')
# tempList.append(str(a_link))
# else:
# tempList.append(str(dataRow[dataRowContents].text))
print(dataRow[dataRowContents].text)
print(tempList)
contentRows.append(tempList)
# print('Automated check is over')
# print('Stored data in programs is as below:')
# print(contentRows)
if sys.version_info[0] <= 2:
with open("./data.csv",'w') as csvfile:
csvfile = csv.writer(csvfile, delimiter=',')
csvfile.writerow(titleRow)
csvfile.writerow("")
for i in range(0,len(contentRows)):
csvfile.writerow(contentRows[i])
else:
with open("./data.csv",'w',newline='') as csvfile:
csvfile = csv.writer(csvfile, delimiter=',')
csvfile.writerow(titleRow)
csvfile.writerow("")
for i in range(0,len(contentRows)):
csvfile.writerow(contentRows[i])
driver.close()
I Kann mir jemand sagen, wo ich falsch liege? Ich benutze Python 3.6 Ich habe die vorherige Frage geschlossen Ich musste 4 Leerzeichen hier geben, aber in Originalen sind gut geschrieben, außer dem Fehler.
Gibt es noch mehr Hilfe, die ich erwarten kann? Wenn Sie mir helfen können, diesen Code zu ändern, da ich total verwirrt bin –
DANKE SO VIEL SIR –