【发布时间】:2018-03-23 15:56:32
【问题描述】:
我有这段代码,它获取一个链接,打开它,获取图像,将其下载到我的桌面,然后转到列表的下一个链接。
由于某种原因,当它转到下一个链接时,它不会在导航器中“按 Enter”,而是将链接放在那里,但不会转到下一个网站。有谁知道如何修理它?代码运行良好,但这会破坏代码。谢谢!
Ps:我确实放了两个print进行调试,但情况是它没有在Webdriver中按Enter。而且它在执行中没有显示任何错误,它只是冻结。
##Preparar variáveis
time.sleep(1)
lines = [line.rstrip('\n') for line in open("C:/Users/Luís/Desktop/PEBTXT/linkdasimagens.txt")]
x = 0
##Loop para abrir imagens
while True:
try:
time.sleep(3)
y = lines[x]
driver.get(y)
###Pegar imagem
img = driver.find_element_by_xpath("//img[@class='BRnoselect']")
src = img.get_attribute('src')
with open(("C:/Users/Luís/Desktop/PEBTXT/file{}.jpg".format(x)), "wb") as f:
f.write(requests.get(src).content)
print(x)
x += 1
print(x)
except NoSuchElementException:
pass
编辑:问题的解决方案,我再次添加driver.get“按回车”
time.sleep(2)
y = lines[x]
driver.get(y)
time.sleep(1)
driver.get(y)
【问题讨论】:
-
使用您提供的代码,如果 x 的一个值出现错误,它将永远不会转到 x 的下一个值,因为
x += 1不会发生。如果您在代码的except部分添加x += 1,您的代码会发生什么情况? -
实际上这不是问题。我认为是 selenium 的一个错误,我在代码中输入了两次 driver.get 并且它起作用了。
标签: python selenium webdriver freeze