Python Koddaki hata nerede?

kkank

Hectopat
Katılım
1 Mart 2021
Mesajlar
780
Makaleler
7
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
İyi Sosyaller.
Aşağıdaki hatanın manası nedir çözemedim, ne yapmam lazım?
mevcutyil += 1 browser.find_element(By.XPATH, "/html/body/div[4]/div[2]/main/div[1]/div[3]/div[1]/div/div/div").click() time.sleep(3) browser.find_element(By.XPATH, yillar[mevcutyil]).click()

DevTools listening on ws://127.0.0.1:55811/devtools/browser/3fa9ed6b-48c9-4e4f-8eaa-0f85ea5ccd72
[11128:19104:0818/101737.563:ERROR:ssl_client_socket_impl.cc(980)] handshake failed; returned -1, SSL error code 1, net_error -100
[11128:19104:0818/101737.670:ERROR:ssl_client_socket_impl.cc(980)] handshake failed; returned -1, SSL error code 1, net_error -100
Traceback (most recent call last):
File "c:\Users\xxxxx\.spss\bosdeneme.py", line 53, in <module>
browser.find_element(By.XPATH, yillar[mevcutyil]).click()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 740, in find_element
return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 346, in execute
self.error_handler.check_response(response)
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 245, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression "/hmtl/body/div[4]/div[2]/main/div[1]/div[3]/div[1]/div/div/ul/li[3]" because of the following error:
TypeError: Failed to execute 'evaluate' on 'Document': The result is not a node set, and therefore cannot be converted to the desired type.
(Session info: chrome=115.0.5790.173); For documentation on this error, please visit: Understanding Common Errors
 
Son düzenleyen: Moderatör:
3. satırdaki click eventinden sonra modal vb. bir şey mi açılıyor ? Eğer öyleyse açılan modalın veya her neyse onun html yolunu yanlış yazıyorsunuz gibi görünüyor. Click edilen elemandan sonra gerçekleşen olay ile ilgili detay verirseniz yardımcı olmak isterim.
 
Son düzenleme:
Kod:
while True:
    browser.get(ligler[i])
  
    deneme = browser.find_element(By.CSS_SELECTOR,".component-dropdown__native")
    yil_secenekleri = deneme.find_elements(By.CSS_SELECTOR,"option")
    yil_sayisi = len(yil_secenekleri)
    mevcutyil = 1

    while True:       
        k = browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-1")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-2")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-3")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-4")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-5")
        with open("teams.txt", "a", encoding="utf-8") as file2:
            for m in k:
                link=m.find_element(By.CSS_SELECTOR,"a").get_attribute("href")
                file2.write(link + "\n")       
        mevcutyil += 1
        browser.find_element(By.XPATH, "/html/body/div[4]/div[2]/main/div[1]/div[3]/div[1]/div/div/div").click()
        time.sleep(3)
        browser.find_element(By.XPATH, yillar[mevcutyil]).click()

while ilk turunu tamamlıyor, ikinciye geçmeden hata veriyor orada.
 
Kod:
while True:
    browser.get(ligler[i])
 
    deneme = browser.find_element(By.CSS_SELECTOR,".component-dropdown__native")
    yil_secenekleri = deneme.find_elements(By.CSS_SELECTOR,"option")
    yil_sayisi = len(yil_secenekleri)
    mevcutyil = 1

    while True:      
        k = browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-1")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-2")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-3")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-4")
        k = k + browser.find_elements(By.CSS_SELECTOR,".p0c-competition-tables__row.p0c-competition-tables__row--rank-status.p0c-competition-tables__row--rank-status-5")
        with open("teams.txt", "a", encoding="utf-8") as file2:
            for m in k:
                link=m.find_element(By.CSS_SELECTOR,"a").get_attribute("href")
                file2.write(link + "\n")      
        mevcutyil += 1
        browser.find_element(By.XPATH, "/html/body/div[4]/div[2]/main/div[1]/div[3]/div[1]/div/div/div").click()
        time.sleep(3)
        browser.find_element(By.XPATH, yillar[mevcutyil]).click()

while ilk turunu tamamlıyor, ikinciye geçmeden hata veriyor orada.
f"/html/body/div[4]/div[2]/main/div[1]/div[3]/div[1]/div/div/div/yillar[{mevcutyil}]"
sanırım böyle bir şey yapmaya çalışıyorsunuz.
 
Hayır aslında bunu yapması daha zor geldi, /html/body/div[4]/div[2]/main/div[1]/div[3]/div[1]/div/div/div/li[2] gibi hazırladım listeye attım. Oradan sırayla alsın istedim. Liste elemanları direk hazır halde.

Bu satırı:
browser.find_element(By.XPATH, yillar[mevcutyil]).click()
Aşağıdaki gibi değiştirdim:
browser.find_element(By.CSS_SELECTOR, yillar[mevcutyil]).click()

Yıllar listesini de selector'la doldurdum ve işim görüldü.
 
Son düzenleme:

Yeni konular

Geri
Yukarı