我创建了一个脚本来从 CSV 文件中读取数据并将其输入到我的 Web 表单中,但我无法以正确的形式将某些数据保存在 CSV 文件中,我需要转换该脚本以便它读出 Excel 文件而不是 CSV 文件。我进行了几次搜索,但都没有成功。我很乐意提供建议。
#-------------------------------------------------------------------------------
# Imports
import csv
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
#-------------------------------------------------------------------------------
# Setup
name = 0
age = 1
score = 2
with open('data.csv', 'r', encoding='utf8', errors='ignore') as csv_file:
csv_reader = csv.reader(csv_file)
#-------------------------------------------------------------------------------
# Web Automation
for line in csv_reader:
driver = webdriver.Chrome()
driver.get('https://mysite.domain/?page_id=311')
Add_to_cart = driver.find_element(By.XPATH, "//*[@id='site-content']")
Add_to_.click()
time.sleep(3)
driver.get('https://mysite.domain/?page_id=385')
name_field = driver.find_element(By.XPATH, "//*[@id='first_name']")
name_field.send_keys(line[0])
age_field = driver.find_element(By.XPATH, "//*[@id='last_name']")
age_field.send_keys(line[1])
Adress = driver.find_element(By.XPATH, "//*[@id='address_1']")
Adress.send_keys(line[2])
Zip = driver.find_element(By.XPATH, "//*[@id='postcode']")
Zip.send_keys(line[3])
City = driver.find_element(By.XPATH, "//*[@id='city']")
City.send_keys(line[4])
Phone = driver.find_element(By.XPATH, "//*[@id='phone']")
Phone.send_keys(line[5])
Email = driver.find_element(By.XPATH, "//*[@id='email']")
Email.send_keys(line[6])
Submit = driver.find_element(By.XPATH, "//*[@id='Submit']")
Submit.click()
time.sleep(3)
#-------------------------------------------------------------------------------
我稍微清理了脚本,但这应该适用于 CSV 文件,假设格式如下
first_name,last_name,address_1,postcode,city,phone,email
"John","Smith","123 Main St., Apt 123","12345-6789","Springfield","(123)456-7890","[email protected]"
代码
#-------------------------------------------------------------------------------
# Imports
import csv
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#-------------------------------------------------------------------------------
# Setup
name = 0
age = 1
score = 2
with open('data.csv', 'r', encoding='utf8', errors='ignore') as csv_file:
rows = csv.reader(csv_file)
for row in rows:
#-------------------------------------------------------------------------------
# Web Automation
driver = webdriver.Chrome()
driver.get('https://mysite.domain/?page_id=311')
driver.find_element(By.ID, "site-content']").click()
time.sleep(3)
driver.get('https://mysite.domain/?page_id=385')
driver.find_element(By.ID, "first_name").send_keys(row[0])
driver.find_element(By.ID, "last_name").send_keys(row[1])
driver.find_element(By.ID, "address_1").send_keys(row[2])
driver.find_element(By.ID, "postcode").send_keys(row[3])
driver.find_element(By.ID, "city").send_keys(row[4])
driver.find_element(By.ID, "phone").send_keys(row[5])
driver.find_element(By.ID, "email").send_keys(row[6])
driver.find_element(By.ID, "Submit").click()
time.sleep(3)
# do other stuff
driver.quit()