Selenium çoklu pencere

Selenium ile instagramda kullanıcı hesaplar ile tek tek giriş yapıp işlemler yaptırmak biraz uzun sürüyor. Selenium da bir kaç tane pencereyi aynı anda çalıştırarak bir kaç tane kullanıcıyı aynı anda instagrama girdirmek istiyorum. Ve işlemleri aynı anda yapmasını istiyorum zamandan tasarruf etmek için. Bunu threading e dökemedim. Bilen var mı

for user_name, pass_word in user_datas.items():
browser = webdriver.Chrome()
browser.get(“https://www.instagram.com”)
time.sleep(random.uniform(3, 5))
kullaniciadi = browser.find_element_by_xpath("//input[@name=‘username’]")
sifre = browser.find_element_by_xpath("//input[@name=‘password’]")
kullaniciadi.send_keys(user_name)
sifre.send_keys(pass_word)
sifre.send_keys(Keys.ENTER)
.
.
.
.
.

şeklinde devam ediyor program yaptırılacak işlemler için

threading den anlayan veya bunu başka yolla yapmayı bilen birisi var mı

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from threading import Thread
from random import randint
import time

ids = open("ids.txt", "r").readlines()
pws = open("pws.txt", "r").readlines()
bots = []

class Bot:
    def __init__(self, id, pw):
        self.id = id
        self.pw = pw
        self.browser = webdriver.Chrome()

    def login(self):
        self.browser.get("https://www.instagram.com")
        time.sleep(randint(3, 5))
        id = self.browser.find_element_by_xpath("//input[@name='username']")
        sifre = self.browser.find_element_by_xpath("//input[@name='password']")
        id.send_keys(self.id)
        sifre.send_keys(self.pw)
        sifre.send_keys(Keys.ENTER)

for i in range(len(ids)):
    bots.append(Bot(ids[i], pws[i]))

for bot in bots:
    Thread(target=bot.login).start()

kodunuzun bulunduğu dosya konumunda ids.txt ve de pws.txt isminde iki dosya oluşturup, kullanıcı adlarını ve de şifrelerini bu dosyalara kaydedip çalıştırabilirsiniz.
konum

1 Beğeni

evet hocam oluyor gerçekten çoklu pencere açılıyor fakat listeye ne kadar çok hesap eklediysek o kadar açılıyor. Mesela 30 hesap eklense 30 pencere açılacak. Ben bunu 2 li yada 3 lü şeklinde ayarlayabilir miyim. Mesela listede 30 hesap olsa. İkili pencere açılsın ve iki hesap aynı anda girsin işlemlerini yapsın ve sırasıyla dönsün bu şekilde 30 hesap diye ayarlayabilir miyim pencere sayısını

Sanırım şöyle bir şey istediniz;

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from threading import Thread
from random import randint
import time

ids = open("ids.txt", "r").readlines()
pws = open("pws.txt", "r").readlines()
bots = []

class Bot:
    def __init__(self, id, pw):
        self.id = id
        self.pw = pw
        self.durum = 0

    def login(self):
        self.browser = webdriver.Chrome()
        self.browser.get("https://www.instagram.com")
        time.sleep(randint(3, 5))
        id = self.browser.find_element_by_xpath("//input[@name='username']")
        sifre = self.browser.find_element_by_xpath("//input[@name='password']")
        id.send_keys(self.id)
        sifre.send_keys(self.pw)
        sifre.send_keys(Keys.ENTER)
        self.browser.close()
        self.durum = -1

for i in range(len(ids)):
    bots.append(Bot(ids[i], pws[i]))

for i in range(0, len(bots), 2):
    Thread(target=bots[i].login).start()
    Thread(target=bots[i+1].login).start()
    while bots[i].durum != -1 and bots[i+1].durum != -1:
        time.sleep(1/4)

Bu kodda iki pencere açılıyor, iki bot giriş yapıyor ardından pencereler kapanıyor. Sonrasında başka 2 pencere açılıyor. Böyle böyle devam ediyor. Aynı anda 30 pencere açılmıyor, sırasıyla 2’şer 2’şer ilerliyor.

1 Beğeni

teşekkürler hocam kodu denedim aynı dediğiniz gibi sağolun

1 Beğeni