【问题标题】:Selecting Multiple buttons on a page in Selenium Python在 Selenium Python 中选择页面上的多个按钮
【发布时间】:2021-10-16 07:55:52
【问题描述】:

好的,所以我在选择此 SafeWay 网站上的所有红色 Cupon 按钮时遇到了这个问题。我试过按类、名称​​、xpath 来命名,你可以命名它。我只是想点击所有显示“Clip Cupon”的按钮

您需要注册,但这里的代码没有我的登录信息和用户。

from selenium import webdriver
import random
import string
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time
#find the path for the driver
driver = webdriver.Chrome(executable_path="C:\\Users\\USER\Downloads\\chromedriver_win32\\chromedriver.exe")
driver.get("https://www.safeway.com/account/sign-in.html?goto=/justforu/coupons-deals.html")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, '//*[@id="label-email"]'))
    )
except:
    driver.quit()
signinlink=driver.find_element_by_xpath('//*[@id="label-email"]')
signinlink.click()
sW_Email = driver.find_element_by_id('label-email')
sW_Email.send_keys('XXXXXXXXXX')
sW_Email1= driver.find_element_by_xpath('//*[@id="label-password"]')
sW_Email1.send_keys("XXXXXXXXXX")
sW_Button=driver.find_element_by_xpath('//*[@id="btnSignIn"]')
sW_Button.click()
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, '/html/body/div[2]/div/div/div[1]/div/div/div/div/div[3]/div[2]/div[1]/div/div/div[2]/a/img'))
    )
except:
    driver.quit()
like = driver.find_elements_by_class_name("btn grid-coupon-btn btn-default")
for x in range(0,len(like)):
    if like[x].is_displayed():
        like[x].click()
        print("If you can see this it Ran")
    else:
        pass

【问题讨论】:

    标签: python html selenium selenium-webdriver xpath


    【解决方案1】:

    看到你使用带空格的类名,Selenium 不支持。

    尝试将其更改为 css_selector :

    like = driver.find_elements_by_css_selector(".btn.grid-coupon-btn.btn-default")
    for x in range(0,len(like)):
        if like[x].is_displayed():
            time.sleep(1)
            like[x].click()
            print("If you can see this it Ran")
        else:
            pass
    

    【讨论】:

    • 稍微调整一下就可以了。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    • 2020-11-25
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    相关资源
    最近更新 更多