Python driver.get - 可以通过预定义的URL列表使其工作吗?

时间:2017-07-21 21:51:34

标签: python selenium automation

在工作中,我们有一项基本上需要以下步骤的任务: 1.打开一个URL 2.单击过去的SSL证书 3.单击链接 4.重复20次

我已经研究过如何使用Selenium在Python中自动执行此任务,但是代码读起来像这样(这只是超过200行的开始):

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep

capabilities = webdriver.DesiredCapabilities()INTERNETEXPLORER
capabilities['acceptSslCerts'] = True

driver = webdriver.Ie("C:\\Python27\\IEDriver\\IEDriver.exe")
driver.get("https://example.com")
sleep(5)
driver.find_element_by_link_text("Continue to this website (not recommended).").click()
driver.find_element_by_link_text("Clear cache").click()
driver.close()
sleep(20)


driver = webdriver.Ie("C:\\Python27\\IEDriver\\IEDriver.exe")
driver.get("https://example.com2")
sleep(5)
driver.find_element_by_link_text("Continue to this website (not recommended).").click()
driver.find_element_by_link_text("Clear cache").click()
driver.close()
sleep(20)

它基本上重复了完成缓存清除所需的次数。

我确定有办法循环这些操作。就像创建.txt文档并让Python从中读取并将其内容用作driver.get()部分中的参数一样。但我不知道该怎么做。

到目前为止,我已经知道我可以定义一个重复的函数,直到列表用完为止。但我不知道如何在为driver.get()命令使用不同的参数时重复该函数。

这可行吗?我并不是真的来自编程背景,所有这些对我来说都是非常新的,所以我仍然掌握着一切......

1 个答案:

答案 0 :(得分:0)

driver = webdriver.Ie("C:\\Python27\\IEDriver\\IEDriver.exe")

for url in ["https://example.com1",
            "https://example.com2",
            "https://example.com3",]:
    driver.get(url)
    sleep(5)
    driver.find_element_by_link_text("Continue to this website (not recommended).").click()
    driver.find_element_by_link_text("Clear cache").click()
    sleep(20)

driver.close()

浏览一些python教程。