首页 > 解决方案 > Python Selenium:执行此脚本 100 次

问题描述

selenium 新手并且能够将这段代码放在一起......效果很好,但是我无法让它重复而不是退出并重新开始......我需要它在退出之前提交 100 次......任何建议欢迎使用简洁明了的代码...

    from random import *
    import random
    import time
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions

    randomNumber = random.randint(1, 2)
    randomNumber1 = random.randint(1, 2)
    randomNumber2 = random.randint(1, 2)
    randomNumber3 = random.randint(1, 2)
    randomNumber4 = random.randint(1, 2)
    randomNumber5 = random.randint(1, 2)
     
    driver=webdriver.Chrome(executable_path="C:\chromedriver\chromedriver.exe")
    driver.implicitly_wait(30)
    driver.get("http://pagelogintothewebsite.com")
    time.sleep(10)
    # Lets login

    usernameStr = 'username'
    passwordStr = 'password'

    username = driver.find_element_by_xpath('//*                
    [@id="j_page_header"]/div[1]/div/div[1]/input')
    username.send_keys(usernameStr)
    password = driver.find_element_by_xpath('//*                
    [@id="j_page_header"]/div[1]/div/div[1]/input')
    password.send_keys(passwordStr)

    enter = driver.find_element_by_xpath('//[@id="j_page_header"]/div[1]/div/div[2]/button')
    enter.click()
    time.sleep(2)

    driver.find_element_by_xpath("//div[text()='Mines']").click()
    time.sleep(2)

    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div[" + str(randomNumber) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div[" + str(randomNumber1) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div[" + str(randomNumber2) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div[" + str(randomNumber3) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div/div/div[" + str(randomNumber4) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div/div/div[" + str(randomNumber5) + "]").click()

    time.sleep(2)
    driver.find_element_by_xpath("//*[@id='getin']/div[2]/div/div[5]/button").click()
    time.sleep(2)
    driver.quit()

标签: pythonseleniumrepeatexecute

解决方案


试试看:

import random
import time
from selenium import webdriver

randomNumber = random.randint(1, 2)
randomNumber1 = random.randint(1, 2)
randomNumber2 = random.randint(1, 2)
randomNumber3 = random.randint(1, 2)
randomNumber4 = random.randint(1, 2)
randomNumber5 = random.randint(1, 2)

driver = webdriver.Chrome(executable_path="C:\chromedriver\chromedriver.exe")
driver.implicitly_wait(30)
driver.get("http://pagelogintothewebsite.com")
time.sleep(10)
# Lets login

usernameStr = 'username'
passwordStr = 'password'

username = driver.find_element_by_xpath('//*[ @ id = "j_page_header"] / div[1] / div / div[1] / input')
username.send_keys(usernameStr)
password = driver.find_element_by_xpath('//*[ @ id = "j_page_header"] / div[1] / div / div[1] / input')
password.send_keys(passwordStr)

enter = driver.find_element_by_xpath('//[@id="j_page_header"]/div[1]/div/div[2]/button')
enter.click()
time.sleep(2)
for i in range(100):
    driver.find_element_by_xpath("//div[text()='Mines']").click()
    time.sleep(2)
    
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div[" + str(randomNumber) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div[" + str(randomNumber1) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div[" + str(randomNumber2) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div[" + str(randomNumber3) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div/div/div[" + str(randomNumber4) + "]").click()
    driver.find_element_by_id("//*[@id='serieswatch']/div[2]/div/div/div[" + str(randomNumber5) + "]").click()
    
    time.sleep(2)
    driver.find_element_by_xpath("//*[@id='getin']/div[2]/div/div[5]/button").click()
    time.sleep(2)
driver.quit()

推荐阅读