Tablodaki veriye click yaptıramıyorum

Merhaba arkadaşlar hem python da hem aranızda yeniyim yardımınıza ihtiyacım var.
daha önce devamlı veri girip aldığım bir siteyi otomatik hale getirmeye çalışıyorum… ve şu kodu yazdığımda ;
BUTON = browser.find_element_by_xpath("//table/tbody/tr[1]/td[1]").text
print(BUTON)
BUTON.click()

print(BUTON) ve .text : deneme amaçlıdır .

sonuç ise :
Traceback (most recent call last):
File “C:\Users\hcagl\Desktop\deneme\selenıum_random.py”, line 21, in
BUTON.click()
AttributeError: ‘str’ object has no attribute ‘click’
2000 Genel Nüfus Sayımı

en alt satırdan anladığım kadarı ile tablodaki istediğim değere ulaşıyorum ama click yaptırıp diğer sayfaya geçemiyorum…
yardımcı olabilirseniz sevinirim.

girmeye çalıştığım sayfa : https://biruni.tuik.gov.tr/nufusmenuapp/menu.zul

yazdığım kodun gerçeği budur.

BUTON = browser.find_element_by_xpath("//table/tbody/tr[1]/td[1]")
BUTON.click()

ve ekranda hiç bir hata vermiyor. browser da ise yeni sayfaya geçmiyor.

Merhaba.
Kodunuzu buraya göre düzenlermisiniz.

1 Beğeni

herhalde böyle istediniz…


BUTON = browser.find_element_by_xpath("//table/tbody/tr[1]/td[1]")
BUTON.click()

1 Beğeni
from selenium import webdriver
import random
import time


# *********************************    SAYFANIN YÜKLENMESİ    *********************************
browser = webdriver.Firefox()
url = "https://biruni.tuik.gov.tr/nufusmenuapp/menu.zul"
browser.get(url)
# *********************************    SAYFANIN YÜKLENMESİ    *********************************
time.sleep(1)

BUTON = browser.find_element_by_xpath("//table/tbody/tr[1]/td[1]").id
BUTON.click()

İyi geceler öncelikle…
Burada farklı olarak webdriver_manager modülünü görüyor olabilirsiniz. pip install webdriver-manager konsola yazarak indirin.
Ardından kullandığınız tarayıcının webdriverini indirip scriptiniz ile aynı klasöre attıktan sonra aşağıdaki kodları yazabilirsiniz

import time
from selenium import webdriver
# from webdriver_manager.firefox import GeckoDriverManager # Firefox
from webdriver_manager.chrome import ChromeDriverManager # Bende Chrome olduğu için bununla oluşturuyorum

# browser = webdriver.Firefox(GeckoDriverManager().install()) #Firefox için
browser = webdriver.Chrome(ChromeDriverManager().install())
url = "https://biruni.tuik.gov.tr/nufusmenuapp/menu.zul"
browser.implicitly_wait((3)) # Siteye girdikten sonra kaç sn bekledikten sonra işlem yapsın
browser.get(url)
time.sleep(1) # 1sn boyunca burada programımız bekliyor ve alta geçerek tıklama işlemini gerçekleştiriyor. Eğer kaldırırsak çok hızlı okuduğu için yalnızca sayfayı açacak ve tıklama işlemini yapmayacak. (yapıcak aslında ama çok hızlı olduğu için tıklama işlemini gerçekleştirmediğini görücez)
BUTON = browser.find_element_by_xpath('/html/body/div/div/div/div/div[2]/div/table/tbody/tr[7]/td/span') #1965 yılının genel verilerinn bulunduğu sayfaya gitmesi için kopyalanan full Xpath formatındaki kod
BUTON.click()

2 Beğeni

öncelikle emeğiniz için çok teşekkür ederim.
dediklerinizi yaptım ama şu hatayı alıyorum

Traceback (most recent call last):
  File "C:\Users\hcagl\Desktop\deneme\1.py", line 3, in <module>
    from webdriver_manager.firefox import GeckoDriverManager # Firefox
ModuleNotFoundError: No module named 'webdriver_manager'

Modülün olmadığını söylüyor. Üstte belirttiğim gibi konsola yazın. Daha sonra herhangi bir hata ile karşılaşmayacaksınız

1 Beğeni

merhaba, sizin kodları aynen kullandım, hepsini yeniden yükledim, hatta selenium u da kaldırıp yeniden yükledim ama hep aynı hatayı alıyorum. internetten çok arattım orada da bir sonuç bulamadım…

İlginç. Browserinizi değiştirmeyi denediniz mi?

1 Beğeni

İlk aşta firefox için kod yazıyordum sonra sizinle chrome için denedim. yine olmadı. bir başka bilgisayarım var onda yüklü değil hiç biri birde orada deneyim…

from selenium import webdriver
import random
import time


# *********************************    SAYFANIN YÜKLENMESİ    *********************************
browser = webdriver.Firefox()
url = "https://biruni.tuik.gov.tr/nufusmenuapp/menu.zul"
browser.get(url)
# *********************************    SAYFANIN YÜKLENMESİ    *********************************
time.sleep(1)

BUTON = browser.find_element_by_xpath("/html/body/div/div/div/div/div[2]/div/table/tbody/tr[7]/td/span")
BUTON.click()

sizin gösterdiğiniz ekilde full xpath i kulalnınca sorunum çözüldü. çok teşekkür ediyorum…

Çözmenize sevindim. Sizler gibi bu sorunu yaşayan insanların çözümü bulmasında kolaylık sağlaması amacıyla hangi yorum işinize yaradıysa onu çözüm olarak işaretlemenizde fayda var.

1 Beğeni

Merhaba arkadaşlar tekrar başınızı ağrıtıyorum;

from selenium import webdriver
import time
from webdriver_manager.chrome import ChromeDriverManager

# *********************************    SAYFANIN YÜKLENMESİ    *********************************
browser = webdriver.Chrome(ChromeDriverManager().install())
url = "https://biruni.tuik.gov.tr/nufusmenuapp/menu.zul"
browser.get(url)
# *********************************    SAYFANIN YÜKLENMESİ    *********************************


# *********************************    SEÇİM YILININ BELİRLENMESİ    *********************************
time.sleep(0.5)
browser.refresh()
time.sleep(0.5)
NUFUS_YILI_SECIM = browser.find_element_by_xpath("/html/body/div/div/div/div/div[2]/div/table/tbody/tr[1]/td/span").click()
# *********************************    SEÇİM YILININ BELİRLENMESİ    *********************************


# *********************************    İDARİ BİRİM SEÇİMİ   *********************************
time.sleep(0.5)
IDARI_BIRIM_SECIM = browser.find_element_by_xpath("/html/body/div/div/div/div/table[2]/tbody/tr[1]/td/div[1]/div[2]/table/tbody/tr/td[1]/select/option[2]").click()
time.sleep(0.5)
IDARI_BIRIM_SECIM = browser.find_element_by_xpath("/html/body/div/div/div/div/table[2]/tbody/tr[1]/td/div[1]/div[2]/table/tbody/tr/td[1]/select/option[1]").click()
# *********************************    İDARİ BİRİM SEÇİMİ    *********************************

# *********************************    İL SEÇİMİ   *********************************
time.sleep(0.5)

IL_SECIM = browser.find_element_by_xpath("/html/body/div/div/div/div/table[2]/tbody/tr[1]/td/div[1]/div[2]/table/tbody/tr/td[2]/select/option[2]").click()
# *********************************    İL SEÇİMİ    *********************************

# *********************************    EXCEL BUTONU SEÇİMİ   *********************************
time.sleep(0.5)

EXCEL_BUTONU_SECIM = browser.find_element_by_xpath("/html/body/div/div/div/div/table[2]/tbody/tr[1]/td/div[2]/div/table/tbody/tr/td[1]/table/tbody/tr/td[2]/span/span[2]/label/img").click()
# *********************************    EXCEL BUTONU SEÇİMİ    *********************************


# *********************************    RAPOR BUTONU SEÇİMİ   *********************************
time.sleep(0.5)

RAPOR_BUTON_SECIM = browser.find_element_by_xpath("/html/body/div/div/div/div/table[2]/tbody/tr[1]/td/div[4]/div[2]/table/tbody/tr/td[2]/input").click()

# *********************************    RAPOR BUTONU SEÇİMİ    *********************************










bu kod güzel çalışsa da sonunda


hatası çıkıyor 3 gündür internetten araştırmadığım uygulamadığım yöntem kalmadı çözemedim… bilginiz var mı bu konuda acaba…

HTTP (HTTPS yerine) uzerinden form gonderilmeye kalkildiginda cikan standart bir browser uyarisi. Kapatiliyor olabilir.

çok uğraştım bulamadım…

Firefox’ta var gibi.

1 Beğeni

Yazılanların hepsini okumadım ama xpath kısmını şöyle denermisin? (“böle değil”)
(" ‘böyle bi dene’ ")

1 Beğeni

denedım bu hiç olmadı

firefox da da işe yaramadı.