【问题标题】:How to click randomly with a randomly selected page如何使用随机选择的页面随机点击
【发布时间】:2018-03-17 05:51:11
【问题描述】:

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

我尝试选择通配符,因为每个项目都有不同的 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?

【问题讨论】:

  • 您介意分享一些按钮代码吗?这可能有助于获得更好的答案
  • 刚刚添加了链接谢谢
  • 这与随机点击或随机页面有什么关系?

标签: python selenium testing automation wildcard


【解决方案1】:

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

  • 通过它的文字:

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

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

    driver.find_element_by_css_selector("div.add_to_cart_btn")
    

    或

    driver.find_element_by_class_name("add_to_cart_btn")
    

请注意,在您的代码中,您使用find_elements...() 获取元素,然后在此方法返回元素的列表 时单击它。您需要改用find_element...() 或find_elements...()[0]

P。 S. 让我知道这是否不是您想要的,因为标题“随机点击随机选择的页面” 与问题描述不完全匹配

【讨论】:

  • 是的,你回答我的问题是对的,对不起我的标题。但我在当前页面中有多个添加到购物车按钮。如何点击特定的添加到购物车按钮。?
  • 我在尝试上述代码后收到此错误 "driver.find_elements_by_class_name("add_to_cart_btn").click() AttributeError: 'list' object has no attribute 'click'"
  • 我现在可以继续了,谢谢,我应该使用element而不是element,我有点顽固,谢谢先生大帮助
  • 欢迎您!如果它解决了您的问题,您可以accept my answer。谢谢
【解决方案2】:

创建一个您想要点击的网址列表并随机选择一个并转到它。然后选择css_selectors并随机选择一个点击。像这样的东西:-

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

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2019-11-16
    • 1970-01-01
    • 2011-09-17
    相关资源
    最近更新 更多