Merhaba,
Selenium webdriver, kodlar aşağıdaki gibi olduğunda belirtilen sürede otomatik kapanıyor.
time.sleep(60)
browser.quit()
Ancak ben bu süreyi beklemeyip işim bittiğinde kendim tarayıcıyı kapattığımda webdriver kapanmıyor açık kalıyor.
Tarayıcıyı kendim kapattığımda webdriverin da kapanmasını nasıl sağlarım ?
Desteğiniz için teşekkür ederim.
DISCONNECTED_MSG = 'Unable to evaluate script: disconnected: not connected to DevTools\n'
while True:
if driver.get_log('driver')[-1]['message'] == DISCONNECTED_MSG:
driver.close() # tarayıcı kapandığında burası çalışıyor
time.sleep(1)
veya
import selenium
from selenium import webdriver
browser = webdriver.Firefox()
# Now wait if someone closes the window
while True:
try:
_ = browser.window_handles
except selenium.common.exceptions.InvalidSessionIdException as e:
break
time.sleep(1)
# tarayıcı kapandığında burası çalışıyor
driver.close()
Merhaba, msedgedriver’ın mı kapanmasını istiyorsunuz ? Ben açılan microsoft edge tarayıcıyı kendim (daha işlem bitmeden) kapattım ve beraberinde msedgedriver’da kapandı.
Programı biraz daha test ettim. Selenium tarayıcı üzerinde işlem yaparken tarayıcıyı kapatırsam driver da kapanıyordu ancak time.sleep(60) başladıktan sonra tarayıcıyı kapattığımda driver kapanmadı. O yüzden şöyle yaptım:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from tkinter import *
from threading import Thread
from subprocess import check_output
import time
import signal
import psutil
import os
def if_process_is_running_by_exename(exename='msedge.exe'):
for proc in psutil.process_iter(['pid', 'name']):
# This will check if there exists any process running with executable name
if proc.info['name'] == exename:
return True
return False
def find_pid(exename='msedgedriver.exe'):
for proc in psutil.process_iter(['pid', 'name']):
if proc.info['name'] == exename:
return proc.info['pid']
pencere = Tk()
pencere.geometry("800x850")
pencere.title("DENEME")
def driverkapat():
try:
while True:
if not if_process_is_running_by_exename():
os.kill(int(find_pid()), signal.CTRL_BREAK_EVENT)
time.sleep(1)
except:
pass
def seleniumkodu():
global driver
driver_path = "msedgedriver.exe"
driver = webdriver.Edge(driver_path)
driver.get("https://ebeyanname.gib.gov.tr/index.html")
time.sleep(2)
giriş_yap = driver.find_element_by_id("buton")
giriş_yap.click()
main_page = driver.current_window_handle
for handle in driver.window_handles:
if handle != main_page:
login_page = handle
driver.switch_to.window(login_page)
kullanıcı_kodu = driver.find_element_by_xpath('//*[@id="username"]')
parola = driver.find_element_by_xpath('//*[@id="password2"]')
şifre = driver.find_element_by_xpath('//*[@id="password1"]')
kullanıcı_kodu.send_keys("12345678")
parola.send_keys("aaaaaa")
şifre.send_keys("123456")
time.sleep(3)
giriş_yap2 = driver.find_element_by_xpath('//*[@id="loginForm"]/table/tbody/tr[5]/td/input')
giriş_yap2.click()
driverthread = Thread(target = driverkapat)
driverthread.start()
time.sleep(60)
driver.quit()
etiket1 = Label(pencere,text="A FİRMASI",font="Verdana 12", bg="red", fg="white",width=20)
#etiket1.pack(padx = 10, pady = 10, side = LEFT)
etiket1.place(x=2,y=10)
seleniumthread = Thread(target = seleniumkodu)
dugme1 = Button(pencere, text = "GİRİŞ", command = seleniumthread.start, bg = "blue", fg = "white",width=20)
#dugme1.pack(padx = 10, pady = 20, side = LEFT)
dugme1.place(x=10,y=50)
kodun çalışması için psutil modülüne ihtiyacınız olacak. cmd yi açın ve pip install psutil yazıp çalıştırın.
Tekrar Merhaba,
Sorun hala devam etmekte.
ilk önce Psutil’i yükledim.
Daha sonra sizin kodları olduğu gibi yapştırıp sadece path kısmını (driver_path = “C:\edgedriver\msedgedriver.exe”
driver = webdriver.Edge(driver_path) değiştirdim.
Progarama giriş yapıp son ekran açıldıktan sonra 10 saniye gibi bekledim ve Edge yi kapattım.
Ancak msedgedriver.exe yine buradaki (time.sleep(60)) süreye göre kapandı.
Merhaba,
Bu kodları uyguladım.
Ancak değişen bir şey olmadı.
Edge tarayıcıyı kapattığımda Edge webdriver kapanmadı.
Buradaki ( time.sleep(60) ) zamana göre bekleyip kapandı.
Microsoft Edge son sürüme guncellendikten sonra bende de öyle oldu. Arkaplanda Microsoft Edge açık kalıyor sanırım ondan. Başka yöntem bulursam deneyeceğim.