Aşağıda vermiş olduğum kodda belirtilen adrese gidip otomatik form dolduruyor verdiğim txtler içinden.
Formun belirli bir kısmında itiraz için adresler belirtmem gerekiyor bu kısmında belirtilen div’e tıklatıp yeni bir input açtırdığım zaman yine gidip 1. inputa veriyi giriyor 10 input açtırıyorsam 1. input'a txt'den 1. veriyi 2. input'a txt'den 2.veriyi şeklinde girmeli ben 10 tane açtırıyorum genelde. Yani kısacası bütün eklenen inputlara aynı veriyi girme sorunu var. Ayrıca inputdaki verinin yanına +++ değilde txt içindeki verinin yanına +++ girilmeli.
Txt verilerim şöyle
http://xxx.com
http://yyy.com
http://asd.com
Bir diğer sorun # İsim alanına rasgele bir isim girin kısmına girilen veri ile # İmza alanına rasgele bir isim girin verileri birbiriyle aynı olmalı yani eşleşmeli.
Tüm bunlardan sonra submit edecek formun geri kalan kısmını ben yaptım ama burayı yapamadım.
Bu eksikler düzeltilecek ücretli yardımcı olacaklar pm lütfen.
from selenium import webdriver
import time
import random
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument("--start-maximized")
driver = webdriver.Chrome(options=options)
# İstediğiniz adrese gidin
driver.get('https://support.google.com/legal/contact/lr_counternotice?product=websearch')
# Sınıfı seçmek için bekleyin
time.sleep(1) # 1 saniye bekle
select_div = driver.find_element_by_class_name('sc-select')
select_div.click()
# Seçeneği seçmek için bekleyin
time.sleep(1) # 1 saniye bekle
class_element = driver.find_element_by_xpath("//li[@id=':221']")
class_element.click()
# İsim alanına rasgele bir isim girin
name_element = driver.find_element_by_id('full_name')
with open('random.txt', encoding='utf-8') as f:
names = f.read().splitlines()
random_name = random.choice(names)
name_element.send_keys(random_name)
time.sleep(1) # 1 saniye bekle
# Unvan alanına rasgele bir isim girin
name_element = driver.find_element_by_id('your_title')
with open('unvan.txt', encoding='utf-8') as f:
names = f.read().splitlines()
random_name = random.choice(names)
name_element.send_keys(random_name)
time.sleep(1) # 1 saniye bekle
# Sirket alanına rasgele bir isim girin
name_element = driver.find_element_by_id('companyname')
with open('sirket.txt', encoding='utf-8') as f:
names = f.read().splitlines()
random_name = random.choice(names)
name_element.send_keys(random_name)
time.sleep(1) # 1 saniye bekle
# Mail alanına bir isim girin
email_element = driver.find_element_by_id('contact_email_noprefill ')
email_element.send_keys('asd@asd.com')
# Adres alanına rasgele bir isim girin
name_element = driver.find_element_by_id('address')
with open('address.txt', encoding='utf-8') as f:
names = f.read().splitlines()
random_name = random.choice(names)
name_element.send_keys(random_name)
# Telefon alanına rasgele bir isim girin
name_element = driver.find_element_by_id('phone')
with open('phone.txt', encoding='utf-8') as f:
names = f.read().splitlines()
random_name = random.choice(names)
name_element.send_keys(random_name)
time.sleep(2) # 2 saniye bekle
# Url'leri okuyun ve yazın
with open('url.txt', 'r') as url_file:
urls = url_file.readlines()
url_index = 0
for i in range(2):
add_additional = driver.find_element_by_class_name('add-additional')
add_additional.click()
time.sleep(1) # 1 saniye bekle
# Sonraki input alanını bulun
next_input = driver.find_element_by_id('material_location')
# Url'yi yazın ve sonuna +++ işaretini ekleyin
next_input.send_keys(urls[url_index].strip() + ' +++')
url_index += 1
target_element = driver.find_element_by_id("dmca_clarifications_int ro--counternotice.clarify_owner")
driver.execute_script("arguments[0].click();", target_element)
time.sleep(1) # 1 saniye bekle
# Ayrıntı alanına rasgele bir isim girin
name_element = driver.find_element_by_id('dmca_clarifications')
with open('sebep.txt', encoding='utf-8') as f:
names = f.read().splitlines()
random_name = random.choice(names)
name_element.send_keys(random_name)
time.sleep(2) # 2 saniye bekle
target_element = driver.find_element_by_id("consent_statement1--dmca_consent_statement")
driver.execute_script("arguments[0].click();", target_element)
time.sleep(1) # 1 saniye bekle
target_element = driver.find_element_by_id("consent_statement2--dmca_consent_statementtwo")
driver.execute_script("arguments[0].click();", target_element)
time.sleep(1) # 1 saniye bekle
# İmza alanına rasgele bir isim girin
name_element = driver.find_element_by_id('signature')
with open('random.txt', encoding='utf-8') as f:
names = f.read().splitlines()
random_name = random.choice(names)
name_element.send_keys(random_name)
time.sleep(1) # 1 saniye bekle
# Tarayıcıyı kapatın
# driver.quit()
Python Selenium - Bug Düzeltilecek
5
●198
- 02-04-2023, 18:14:46v01d adlı üyeden alıntı: mesajı görüntüle
Tam olarak nerede sorun yaşadığınızı anlayamadım açıklarsanız yardımcı olabilirim veya github'a upload ederseniz projenizi daha iyi değerlendirebiliriz. - 02-04-2023, 19:02:28inputtaki veriye +++ giren kısım bu: next_input.send_keys(urls[url_index].strip() + ' +++')
Bu kısmı next_input.send_keys(urls[url_index].strip()) olarak değiştir. txt içindeki verilerin hepsini random kullanıyorsun. adresler, isimler, şirketler vs. with open ile a+ olarak url.txt aç ve replace methodu ile veriyi değiştir. Yapamassan veya başka özelliklere ihtiyacın varsa, ücretli olarak yardımcı olabilirim. - 02-04-2023, 20:07:52github üyeliğim yok ama konu açıklamasını daha düzgün yazdım şimdi. Konudaki kodu py ile açarsanız ( chromedriver ve belirtilen adlarda .txt verileri aynı klasörde olmalı txt içlerinde bir şey yok sadece alt alta satırlarda asd asd vb. gibi test verileri var ) bir adres açıcak ve konu başında yazdığım işlemleri yapacak öyle daha net anlaşılacaktırMainMagnet adlı üyeden alıntı: mesajı görüntüle