셀릭이 더 이상 최신 버전의 Firefox와 호환되지 않기 때문에 geckodriver를 설치했습니다. 그래서 웹 사이트를 긁어 모으기위한 코드를 수정해야했습니다. 드롭 다운 목록에서 항목을 선택하는 데 문제가 있습니다. 아래 코드에서 모든 것은 "browser.select"까지 작동합니다. 오류가 발생합니다 : 'WebDriver'객체에 'select'속성이 없습니다. Spyder를 Mac에서 사용하고 있습니다.Geckodriver : 'WebDriver'객체에 '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') 가
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 지방으로) (
루프하십시오. 코드의 마지막 부분은에 편집 된 다음 작품들] :
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 점유율 DOM XML을 도움이 있다면 알려주세요. – Shailendra
선택 드롭 다운 내에서 옵션입니다. 선택 컨트롤로 옵션을 공유 할 수 있습니까? – Shailendra
이들은 내부 HTML에서 목록의 처음 세 개체 (그것은 81 통과) \t- \t <옵션 값 = "1"> 아다 Seçiniz를 <= 옵션 값을 '1'= '선택'을 선택> \t \t – bayrah