Automate Your Browser With Python’s Selenium Using the XPATH Method (Superior Method)

Опубликовано: 09 Апрель 2023
на канале: ZeroLife
204
2

import time, os, platform

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.firefox.service import Service


def func():
global ad, path_gecko, myOptions, path_firefoxBin

DELAY = 5
PATH_PWD = os.path.dirname(os.path.realpath(__file__))

FF_OPTIONS = [
'--headless',
'--no-sandbox',
'--start-maximized',
'--start-fullscreen',
'--single-process',
'--disable-dev-shm-usage',
'--incognito',
'--disable-blink-features=AutomationControlled',
'--disable-xss-auditor',
'--disable-web-security',
'--ignore-certificate-errors',
'--log-level=3',
'--disable-notifications',
'--disable-infobars',
'--disable-gpu',
'--disable-extensions',
]

SET_PREF = {
'general.useragent.override':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
'permissions.default.desktop-notification': 1,
'dom.webnotifications.enabled': 1,
'dom.push.enabled': 1,
'intl.accept_languages': 'en-US',
}

myOptions = FirefoxOptions()
[myOptions.add_argument(opt) for opt in FF_OPTIONS]
[myOptions.set_preference(key, value) for key, value in SET_PREF.items()]

print('[*] OS:', platform.system())

if(platform.system() == 'Windows'):
path_gecko = os.path.join(PATH_PWD, 'geckodriver-v0.33.0-win32', 'geckodriver.exe')
path_firefoxBin = 'C:\\Program Files\\Mozilla Firefox\\firefox.exe'
else:
path_gecko = os.path.join(PATH_PWD, 'geckodriver-v0.33.0-linux-aarch64', 'geckodriver')
path_firefoxBin = os.path.join('usr', 'bin', 'firefox')

path_profile = 'C:\\Users\\R324\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\mx7b8yvr.default-release-1680794538761'
myOptions.add_argument('-profile')
myOptions.add_argument(path_profile)

print('[*] path_gecko:', os.path.exists(path_gecko))
print('[*] path_firefoxBin:', os.path.exists(path_firefoxBin))
print('[*] path_profile:', os.path.exists(path_profile))

myService = Service(path_gecko)
myOptions.binary_location = path_firefoxBin

print('[*] Starting Driver\n')

driver = webdriver.Firefox(service=myService, options=myOptions)
print('[*] Driver started\n')

driver.get('https://www.kijiji.ca')
print('[*] Visited Website\n')

time.sleep(DELAY)

driver.get('https://www.kijiji.ca/m-my-ads/active/1')
print('[*] Visited Ad Page\n')

time.sleep(DELAY)

num = driver.find_element(By.XPATH, '//div[contains(text(),"Active")]//span').text
print('[*] Number of ads:', num, '\n')

if int(num) ❯ 0:
print('[!] Deleting Ad\n')

time.sleep(DELAY)

driver.find_element(By.XPATH, '//textarea[@id="AdTitleForm"]').send_keys(Keys.ENTER)
print('[*] Clicking Enter\n')

time.sleep(DELAY)

driver.find_element(By.XPATH, '//span[contains(text(),"Real Estate")]/parent::button').click()
print('[*] Selecting Real Estate\n')

time.sleep(DELAY)

with open(PATH_PWD + os.path.sep + 'ad.txt','r') as fout:
ad = fout.read()
driver.find_element(By.XPATH, '//textarea[@id="pstad-descrptn"]').send_keys(ad)
print('[*] Description Entered\n')

time.sleep(DELAY)

for i in [1,2,3,4,6,7,8,9,10]:
driver.find_element(By.XPATH, '//input[@type="file"]').send_keys(os.path.join(PATH_PWD, 'housePics', f'{i}.JPG'))
print('[*] Inputting Pictures\n')

time.sleep(DELAY)

driver.find_element(By.XPATH, '//button[@type="submit"]').click()
print('[*] Selecting Submit\n')

if _name_ == '__main__':
func()

DONATE:
---------------
PAT:   / rezatahirkheli  
PP: https://www.paypal.com/paypalme/rezat...
BTC: 3EUQBWZKX9Vcwdffd3cUGATQopxrAQQxJ9
LTC: MBXE6hJgxxFYSD8SjmR7sHCHGTqFXmNGoU


Смотрите видео Automate Your Browser With Python’s Selenium Using the XPATH Method (Superior Method) онлайн без регистрации, длительностью часов минут секунд в хорошем качестве. Это видео добавил пользователь ZeroLife 09 Апрель 2023, не забудьте поделиться им ссылкой с друзьями и знакомыми, на нашем сайте его посмотрели 204 раз и оно понравилось 2 людям.