循环结束点击列表

时间:2018-05-03 12:56:08

标签: python selenium

我的问题是 第一部分: 我必须动态获取所有href值

第二部分: 获取后我需要点击所需的href值(例如:我的意思是如果动态我获取20个href值,只需8点我需要点击)

并且问题是href值不断变化(第一部分我知道该怎么做但是2部分我不知道如何实现)

    hamburgerDrop = driver.find_element(By.XPATH,"//tr[@data-category-id='15']/td[3]")
    elements = hamburgerDrop.find_elements(By.TAG_NAME,"a")
    for link in elements:
        if link.get_attribute('href'):
            link.click()
            print("the element found")
            driver.back()
            time.sleep(4)
            break
    else:
        print("element is not found")

从我上面编写的代码中,我只能点击一个href值,如果我想点击第二个我不能这样做

例如:(事物超出20 href值我想只点击8) 所以我写了这样的代码

    def find_products(self):
    elements = self.captureLinks(self.category_container,"xpath","a,li,div")
    for link in elements:
        if link.get_attribute('href') = 'https://example.com,/c/announcements' :
            link.click()
            self.log.info("The products link is  found")
            time.sleep(3)

    else:
        self.log.info("The products link is not found")
    self.back()
    time.sleep(5)

当我的经理审核了这段代码时,他们告诉我没有与href值进行比较,它应该点击相应的链接。

def find_products(self):
    elements = self.captureLinks(self.category_container,"xpath","a,li,div")
    for link in elements:
        if "announcements" in link.get_attribute('href') :
            link.click()
            self.log.info("The products link is  found")
            time.sleep(3)

    else:
        self.log.info("The products link is not found")
    self.back()
    time.sleep(5)
    return elements

所以我改变了这样的代码但是当我执行时我得到了错误
TypeError:“NoneType”类型的参数不可迭代

1 个答案:

答案 0 :(得分:2)

问题是您的循环以break结束。删除它,循环应该继续