如何让selenium python脚本不断点击按钮



目标:运行一个连续的功能,不断点击目标url页面上的按钮,并在点击之间等待

url = "https://kingoftheclicks.com/?ref=ghost-of-a-chance"
target button = "+ Click button"

稍后我将把它设置为目标对手";点击-1000";//*[@id="__layout"]/div/main/div[3]/div[3]/div/div[2]/div/div[2]/div[1]/div[3]/text()[2]

需要帮助使这个基本代码工作,然后单击按钮。

from selenium.webdriver.common.action_chains import ActionChains
elem = driver.find_element_by_xpath('//a@id="__layout"]/div/main/div[3]/div[3]/div/div[2]/div/div[2]/div[2]/div[2]/div[2]')
actions = ActionChains(driver)
actions.click(elem).perform()

您可以使用循环来反复执行操作。例如,打印10次:

for i in range(10):
print("foo")

您还可以使用while循环,其语法类似于:

while [some_condition_is_true]:
[do something]

如果你需要在每次点击之间等待,你可以sleep:

import time
time.sleep(0.1) #This will pause the program for 100 milliseconds

您首先需要一个更好的定位器!那么您应该使用WebDriverWait

正如@Kosay建议使用while一样,这里有一个实现:

driver.get("https://kingoftheclicks.com/?ref=ghost-of-a-chance")
WebDriverWait(driver,30).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.advance")))
driver.find_element(By.CSS_SELECTOR, "button.advance").click()
WebDriverWait(driver,30).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".fighter--challenger .fighter-btn")))
while driver.find_element(By.CSS_SELECTOR,".fighter--challenger .fighter-btn").is_displayed():
driver.find_element(By.CSS_SELECTOR, ".fighter--challenger .fighter-btn").click()

注意:我添加了WebDriverWait,所以您也需要导入它。

以下是进口商品:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

最新更新