我的问题是 第一部分: 我必须动态获取所有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”类型的参数不可迭代
答案 0 :(得分:2)
问题是您的循环以break
结束。删除它,循环应该继续