Ich habe geckodriver installiert, da Selen nicht mehr mit den neuesten Versionen von Firefox kompatibel ist. Aus diesem Grund musste ich den Code ändern, der für das Scrapen einer Website verwendet wurde. Ich habe Probleme beim Auswählen von Elementen in einer Dropdown-Liste. Im folgenden Code funktioniert alles bis "browser.select"; Ich bekomme den Fehler: 'WebDriver' Objekt hat kein Attribut 'select'. Ich benutze Spyder auf einem Mac.Geckodriver: 'WebDriver' -Objekt hat kein Attribut 'select'
import time
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/Applications/anaconda/lib/python3.6/site-packages/selenium/webdriver/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)
browser.get("https://sonuc.ysk.gov.tr/module/GirisEkrani.jsf")
time.sleep(2)
browser.find_element_by_id('closeMessageButton').click()
browser.find_element_by_id('j_id112:secimSorgulamaForm:j_id115:secimSecmeTa ble:0:secimId').click()
browser.find_element_by_id ('j_id112: secimSorgulamaForm: j_id142')() klicken
Schleife durch Provinzen
time.sleep(4)
il_sayisi = len(browser.find_element_by_id("j_id48:j_id49:j_id108:cmbSecimCevresi").find_elements_by_tag_name('option'))-1
for j in range(1,il_sayisi):
j = j +1
iller = browser.find_element_by_id("j_id48:j_id49:j_id108:cmbSecimCevresi").find_elements_by_tag_name('option')
browser.select_dropdown('j_id48:j_id49:j_id108:cmbSecimCevresi',iller[j].value)
time.sleep(2)
ilce_sayisi = len(browser.find_element_by_id("j_id48:j_id49:j_id120:cmbIlceSecimKurulu").find_elements_by_tag_name('option'))-1
for i in range(0,ilce_sayisi):
i = i + 1
ilceler = browser.find_element_by_id("j_id48:j_id49:j_id120:cmbIlceSecimKurulu").find_elements_by_tag_name('option')
browser.select('j_id48:j_id49:j_id120:cmbIlceSecimKurulu',ilceler[i].value)
time.sleep(5)
browser.find_element_by_id('j_id48:j_id49:j_id192').click()
time.sleep(5)
browser.find_element_by_id("j_id48:tabloBilgileriPanel:j_id440").click()
time.sleep(5)
browser.find_element_by_id("j_id1114:j_id1115:j_id1121").click()
time.sleep(7)
[EDIT:. Der letzte Teil des Codes der bearbeitet wurde folgende und jetzt funktioniert]:
iller = browser.find_element_by_id("j_id48:j_id49:j_id108:cmbSecimCevresi")
iller_options = iller.find_elements_by_tag_name('option')
i_options = {option.text.strip(): option.get_attribute("value")
for option in iller_options if option.get_attribute("value").isdigit()}
for k in sorted(list(i_options.keys()))[4:81]:
# iller
iller = browser.find_element_by_id("j_id48:j_id49:j_id108:cmbSecimCevresi")
iller_options = iller.find_elements_by_tag_name('option')
i_options = {option.text.strip(): option.get_attribute("value")
for option in iller_options if option.get_attribute("value").isdigit()}
iller_select = Select(iller)
iller_select.select_by_value(i_options[k])
time.sleep(5)
Plese Aktie DOM XML für Drop-down-Steuerung helfen. – Shailendra
Sie sind Option innerhalb Auswahl Drop-Down. Können Sie Optionen mit ausgewählten Steuerelement teilen. – Shailendra
Dies sind zunächst drei Objekte in der Liste von dem inneren HTML (es geht bis 81): \t \t \t \t AFYONKARAHİSAR –
bayrah