如何使用 Python Selenium 读取 Excel 文件并将其插入到我的 Web 表单中?

问题描述 投票:0回答:1

我创建了一个脚本来从 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)
        


#-------------------------------------------------------------------------------
python excel selenium-webdriver webautomation
1个回答
0
投票

我稍微清理了脚本,但这应该适用于 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()
© www.soinside.com 2019 - 2024. All rights reserved.