如何背对背运行多个Selenium测试

时间:2019-07-09 18:52:33

标签: python selenium

我正在尝试使用Selenium和Python执行动态Web抓取。我尝试抓取的网站输入了大约600个左右的位置。每个位置都有不同的设施。

我要抓取设施的名称以及每个位置的地址。

我在excel文件中有位置列表。我使用Pandas导入了这些位置,然后尝试在每个位置进行for循环,在输入中输入位置,然后抓取在下面输出的设施。

但是我的for循环未按预期工作,因此每次运行脚本时,Selenium驱动程序都会打开,并且我会按预期刮取设施的位置。但是之后没有任何反应。我的目标是使脚本继续进行,无论是打开新的Selenium浏览器还是在输入中输入新位置,以刮除第二个位置的设施。

df = pd.read_excel('MA Cities - Licensed Child Care Search.xlsx')

for i in df: 
    driver = webdriver.Chrome(options = options)
    driver.get('https://eeclead.force.com/EEC_ChildCareSearch')
    res = driver.execute_script("return document.documentElement.outerHTML")

    search = driver.find_element_by_id('j_id0:j_id2:j_id29:city')
    search.send_keys(i)
    search.send_keys(Keys.ENTER)

通过将驱动程序部件放入函数中,然后使用从0到要处理的城市中的for循环调用该函数来解决此问题。

1 个答案:

答案 0 :(得分:0)

通过将硒驱动器部分放入函数中,然后使用从0到我正在处理的#个城市的for循环调用该函数来解决此问题。

for i in range(x): 
    my_function(i)

然后在函数中添加

search.send_keys(df.iloc[i])