【问题标题】:Webdriver fails to open a link in PythonWebdriver 无法在 Python 中打开链接
【发布时间】: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


【解决方案1】:

尝试重置 y 的值。把y=""放在x += 1之后

【讨论】:

  • 您认为链接可能会累积吗?我试试看,看看有没有效果。
  • 它没有用,但它起作用了。 time.sleep(2) y = lines[x] driver.get(y) time.sleep(1) driver.get(y)
猜你喜欢
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 2018-08-25
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
相关资源
最近更新 更多