Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用随机选择的页面随机单击_Python_Selenium_Testing_Automation_Wildcard - Fatal编程技术网

Python 如何使用随机选择的页面随机单击

Python 如何使用随机选择的页面随机单击,python,selenium,testing,automation,wildcard,Python,Selenium,Testing,Automation,Wildcard,我想点击一个电子商务网站上的“添加到购物车”按钮,我的问题是每个商品都有一个不同的按钮id。我注意到该id位于div中 我尝试选择通配符,因为每个项目都有不同的id addcart = driver.find_elements_by_css_selector("div[id*=\"addtocart-\"]") addcart.click() 创建一个要点击的URL列表,然后随机选择一个并转到它。然后选择css_选择器并随机选择一个进行单击。大概是这样的:- driver = webdrive

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

我尝试选择通配符,因为每个项目都有不同的id

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

创建一个要点击的URL列表,然后随机选择一个并转到它。然后选择css_选择器并随机选择一个进行单击。大概是这样的:-

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']")
按类名:

driver.find_element_by_css_selector("div.add_to_cart_btn")

请注意,在代码中使用的是find_元素。。。获取元素,然后单击它,同时此方法返回元素列表。您需要使用find_元素。。。或者改为查找\u元素…[0]


另外,如果不是您想要的,请告诉我,因为标题与随机选择的页面随机单击并不真正符合问题描述

您介意为按钮共享一些代码行吗?这可能有助于更好地回答刚才添加了一个链接谢谢这与随机点击或随机页面有什么关系?是的,你正确回答了我的问题,对不起我的标题。但我在当前页面中有多个“添加到购物车”按钮。如何单击特定的“添加到购物车”按钮。?我在尝试上述代码驱动程序后出现此错误。按类查找元素\u名称将元素添加到购物车\u btn。单击属性错误:“列表”对象没有属性“单击”我现在可以继续,谢谢,我应该使用元素而不是元素,我有点固执,谢谢先生大帮助欢迎!如果它解决了你的问题,你可以。谢谢
driver.find_element_by_class_name("add_to_cart_btn")