Python-在selenium if found元素中循环站点
我使用了论坛并成功地编写了这段代码Python-在selenium if found元素中循环站点,python,loops,while-loop,Python,Loops,While Loop,我使用了论坛并成功地编写了这段代码 其目的是转到页面,然后查找图片如果有图片,请单击它,然后转到下一页[下一步],再次开始查找图片 如果图片丢失,它应该在同一页上再次开始搜索,但如果出现错误,它应该停止搜索。 基本上,我有三个页面,我希望循环一直运行,直到出现错误,这将打破它。 简而言之,它应该是这样工作的: 程序进入site1,查找图片如果他找到了它,他点击它并进入站点2,如果他找到了一张图片,点击它并进入站点3,这里同样如此然后返回到开头,返回site1-site3并查找图片只有在出现消息
其目的是转到页面,然后查找图片
如果有图片,请单击它,然后转到下一页[下一步],再次开始查找图片 如果图片丢失,它应该在同一页上再次开始搜索,但如果出现错误,它应该停止搜索。
基本上,我有三个页面,我希望循环一直运行,直到出现错误,这将打破它。 简而言之,它应该是这样工作的:
程序进入site1,查找图片
如果他找到了它,他点击它并进入站点2,
如果他找到了一张图片,点击它并进入站点3,这里同样如此
然后返回到开头,返回site1-site3并查找图片
只有在出现消息“@id='error”时才会中止,如果没有图像,他希望使用上一个site[]值刷新页面并重新开始查看 我需要什么? 检查代码是否正确,并帮助循环在站点[]周围运行,直到出现错误
def isonsite():
site = ['site1', 'site2', 'site3']
driver.get("https://{0}.test.com".format(site[0]))
while True:
try:
# if found element (img) on site
driver.find_element_by_xpath("//*[@id='img']/div[2]/div/span[3]/a/img")
time.sleep(2)
# then click on image
driver.find_element_by_xpath("//*[@id='img']/div[2]/div/span[3]/a/img").click()
time.sleep(2)
# and now should go to [site[1]]
print('Image clicked, go to next site...')
except NoSuchElementException:
# go to start a loop with the same site as actual (site[]) number like 2,3,4...
isonsite()
try:
# But if on site i found 'error' then break
driver.find_element_by_xpath("//*[@id='error']/div[2]/div/span[3]")
break
except NoSuchElementException:
print('Refreshing')
你能给你的帖子添加更多的上下文吗?我不知道你去了哪个论坛,也不知道你应该是什么类型的对象
driver
。