如何使用硒在多个搜索框中反复输入多个字符串列表?

时间:2018-11-21 15:57:47

标签: python python-3.x selenium selenium-webdriver web-scraping

我需要在3个不同的搜索框字段中输入3个不同的值,然后提交表单。

我将需要重复几次相同的过程。我目前了解如何使用一个值和一个搜索框字段来完成此操作:

import csv
with open(r'C:\Users\username\Documents\Province\folder\list_titles.txt', 
newline='') as inputfile:
list_1 = list(csv.reader(inputfile)) 

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


driver = webdriver.Firefox()
driver.get("https://vch.cochrane.ca/VCH/city/propsearch
/pigeneralinquiry.aspx")

for query in list_1:
    driver.find_element_by_id
("ctl00_MainContentView_rollSearchControl_LINCNumber").send_keys(query)
    driver.find_element_by_id
("ctl00_MainContentView_rollSearchControl_LINCNumber").send_keys(Keys.ENTER)

在上面的代码中,我使用一个列表来迭代执行任务。如何做同样的事情,但是在提交表单之前填写3个搜索框字段?

1 个答案:

答案 0 :(得分:0)

解决方案遍历列表,但显式列出程序中的搜索字段。

list_1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep


driver = webdriver.Firefox()
driver.get("URL with search fields")
for query in list_1:
    driver.find_element_by_name("searchfield_1").send_keys(query[0])
    driver.find_element_by_name("searchfield_2").send_keys(query[1])
    driver.find_element_by_name("searchfield_3").send_keys(query[2])

driver.find_element_by_name("submitbutton").click()
sleep(2)
driver.back()
driver.refresh()
sleep(2)
driver.quit()