如何随机点击随机选择的页面

How to click randomly with a randomly selected page

我想点击电子商务网站中的添加到购物车按钮,我的问题是每件商品都有不同的按钮 ID。我注意到该 ID 位于 div.

我尝试 select 通配符,因为每个项目都有不同的 ID。

addcart = driver.find_elements_by_css_selector("div[id*=\"addtocart-\"]")
addcart.click()

here is the sample code, i want to click the addtocart-49831, how can i click that button?

创建一个您想要访问的 url 列表,并随机 select 一个并转到它。然后select css_selectors 和随机select 一个点击。像这样:-

driver = webdriver.Firefox()
urls = ['url1','url2','url3']
url = urls[randint(0, len(urls) - 1)]

driver.get(url) # <- This will take you to a random page

current_page = driver.current_url
i=0
while i<10: # <- Create your loop as you want
    try:
        selectors = driver.find_elements_by_css_selector('.content-link.spf-link.yt-uix-sessionlink.spf-link') #<- get the css_selectors

        l = selectors[randint(0, len(selectors) - 1)] #<- Select a random selector

        l.click()
        #  Write your 
        #  code here
    except:
        continue

有许多其他方法可以在不使用元素的情况下定位元素 @id:

  • 按其文字:

    addcart = driver.find_element_by_xpath("//button[.='Add To Cart']")
    
  • 按按钮类型:

    addcart = driver.find_element_by_xpath("//button[@type='submit']")
    
  • class 姓名:

    driver.find_element_by_css_selector("div.add_to_cart_btn")
    

    driver.find_element_by_class_name("add_to_cart_btn")
    

请注意,在您的代码中,您正在使用 find_elements...() 获取元素,然后在使用此方法 returns 一个 list 元素时单击它。您需要使用 find_element...()find_elements...()[0] 而不是

P. S. 如果不是您想要的,请告诉我,因为标题 "click randomly with a randomly selected page" 与问题描述不符