Merhaba selenium ile ilgili bir çalışmam var. Tarayıcı ekranda iken verdiğim komutlar çalışıyor. fakat headless modu aktif ettiğimde en son ( "bilanco.click() ") tıklama yapacağı yer çalışmıyor. İnternette birçok yol denedim ama olmadı. Ögeniz tıklanabilir değil uyarısı veriyor. Bu problemi çözmem için yardımcı olurmusunuz? Teşekkürler.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# from selenium.webdriver.chrome.service import Service
# from selenium.webdriver.support.ui import WebDriverWait
# from selenium.webdriver.common.by import By
# from selenium.webdriver.support import expected_conditions as EC
from time import sleep
# from selenium.webdriver.common.keys import Keys
options = Options()
options.headless = True
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
driver=webdriver.Chrome(executable_path=r"C:/Users/isaak/Desktop/TemelAnalizProgrami/chromedriver.exe",chrome_options=options)
url="https://www.isyatirim.com.tr/tr-tr/analiz/hisse/Sayfalar/sirket-karti.aspx?hisse=ACSEL"
driver.get(url)
sleep(2)
driver.maximize_window()
sonfiyat=driver.find_element_by_xpath("/html/body/form/div[4]/div/div[2]/div/div/div[1]/div/div[3]/div/div[2]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div/div[1]/div[1]/div[2]/span[1]")
print(sonfiyat.text)
sleep(2)
# Mali tabloların indirildiği kısım
hisse=driver.find_element_by_xpath("/html/body/form/div[4]/div/div[2]/div/div/div[1]/div/div[3]/div/div[1]/div/ul/li[4]/a")
hisse.click()
bilanco=hisse.find_element_by_xpath("/html/body/form/div[4]/div/div[2]/div/div/div[1]/div/div[3]/div/div[2]/div[4]/div/div/div/div/div/div/div/div[1]/div[2]/div[1]/a")
# driver.execute_script("arguments[0].click();", bilanco)
bilanco.click()
sleep(2)
driver.close()
hisse'ye bastiktan sonra beklemek isteyebilirsin—sabit sureli, veya bilanco gorunur olana kadar.
Bu arada a#page-4 gibi bir selektor varken /html/body/form/div[4]/div/div[2]/div/div/div[1]/div/div[3]/div/div[1]/div/ul/li[4]/a kullanmak istemeyebilirsin.
Firefox’taki hata mesaji daha yardimci olabilir: selenium.common.exceptions.ElementClickInterceptedException: Message: Element <a class="excelimage" href="javascript:;"> is not clickable at point (1182,531) because another element <div class="cookie-policy"> obscures it
Hocam tekrar merhaba kodu yerleştirdim. Hata vermiyor bu sefer fakat dosyayı indirmiyor. Headless mode false olduğunda çalışıyor. True olduğunda çalışmıyor…
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
from selenium.webdriver.common.keys import Keys
options = Options()
options.headless = True
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
driver=webdriver.Chrome(executable_path=r"C:/Users/isaak/Desktop/TemelAnalizProgrami/chromedriver.exe",chrome_options=options)
url="https://www.isyatirim.com.tr/tr-tr/analiz/hisse/Sayfalar/sirket-karti.aspx?hisse=ACSEL"
driver.get(url)
sleep(2)
driver.maximize_window()
# sonfiyat=driver.find_element_by_xpath("/html/body/form/div[4]/div/div[2]/div/div/div[1]/div/div[3]/div/div[2]/div[1]/div[1]/div[1]/div/div[2]/div/div/div[1]/div/div[1]/div/div[1]/div[1]/div[2]/span[1]")
# print(sonfiyat.text)
# sleep(2)
# Mali tabloların indirildiği kısım
hisse=driver.find_element_by_id("page-4")
hisse.click()
sleep(1)
bilanco=driver.find_element_by_css_selector("#ctl00_ctl58_g_00f9bafa_387b_423c_b297_f8592de90819 > div.box-content > div.box-ddlist.text-left > a")
driver.find_element(By.CSS_SELECTOR, 'a.cookie-policy-close').click()
bilanco.click()
sleep(2)
driver.close()
Onun nasıl yapılacağını bilmiyorum hocam. Headless modda çalışırkende arka planda indirme yapar diye düşünmüştüm. Sormadan indir nasıl yaparım acaba bilgi verirmisiniz. Teşekkürler…
options kısmındaki bilgilerin eklenmesi ile beraber options.add.experimental.option kısmındaki “download.default_directory”: “C:\Users\isaak\Downloads” yolu belirtilirken 2 çizgili olacak \ şekilde ayarlanmalı…