python - 如何使 Selenium WebDriver 不等待整个页面加载

标签 python selenium selenium-webdriver

我正在使用 python 2.7 和用于 Firefox 的 Selenium webdriver,我遇到了一个我无法解决或在互联网上找不到解决的问题。 我的任务是打开大约 10k 个网页(adsl 路由器网络界面 - 通过 ip 地址)并上传新固件。我写了代码,但为了完成它,我必须学习如何让 selenium webdriver 不再像永远等待页面加载,而是等待 2 分钟(这是新固件上传所需的时间),然后继续下一步. 我以为我让它永远等待(等待路由器重新连接 - 慢得多但我可以在没有帮助的情况下完成)但是问题是当我点击上传按钮时需要 2 分钟才能上传新固件,然后路由器重新启动以应用更改(需要不到 2 分钟),然后尝试连接(大约 10 秒),即使它获得其他 IP,它也永远不会加载,我的程序将永远等待。 所以,我想跳过所有这些,我希望程序在前 2 分钟后继续到下一个路由器。可以吗?我读了一些关于“pageLoadingStrategy”的内容,但我不明白如何使用它。 如果看不懂请写信给我,因为英语不是我的母语。下面你可以看到代码示例,在 button.submit() 之后它应该等待 2 分钟然后继续而不是永远等待:

def firmware_upload():
  global ip
  br.get("http://"+ip+"/upload.html")
  button = br.find_element_by_xpath('//input[@type="file" and @name="filename"]')
  button.send_keys("/home/djura/Downloads/KW5815A_update_140417")
  button.submit()
  print ("Odradjen UPDATE SOFTWARE-a!")
  return

最佳答案

看看这是否有效。

try
{
br.manage().timeouts().pageLoadTimeout(2, TimeUnit.MINUTES);
global ip
br.get("http://"+ip+"/upload.html")
button = br.find_element_by_xpath('//input[@type="file" and  @name="filename"]')
button.send_keys("/home/djura/Downloads/KW5815A_update_140417")
button.submit()
print ("Odradjen UPDATE SOFTWARE-a!")
return

}
catch(TimeoutException e)
{
print("2min over");
}

关于python - 如何使 Selenium WebDriver 不等待整个页面加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25109337/

相关文章:

java - 如何在 Selenium Web 驱动程序中处理带有空白目标的链接

python - 加快读取多个pickle文件

python - 从列表中选择第一个和最后一个 int 值并继续序列直到列表末尾

python - 本地 Flask 服务器上的慢请求

java - Webdriver Java : Using regular expressions - how to insert them?

css - :eq pseudo selector not working with Selenium WebDriver/Chrome

python - 将(设置)应用于 Pandas 数据框中的两列

java - 使用 Chrome 浏览器的 RemoteDriver 在下拉菜单上失败

java - Selenium Grid (RemoteWebDriver) 与 Cucumber jvm SharedDriver 的使用

java - 在java selenium中,我试图将退格字符 ('\uE003' ) 或 (\u0008) 发送到文本框以清除现有文本