使用Selenium从Python中的列表自动填充web表单

2024-09-27 21:32:11 发布

您现在位置:Python中文网/ 问答频道 /正文

这是Python中的Selenium代码”选择py“:-

from selenium import webdriver

driver = webdriver.Chrome()

driver.get('http://127.0.0.1:8000/employee/register/')

employes = ['1', '2016-1-1', 'Tarun', 'Gupta', 'Male', '1995-12-7', 'Indian', 'Hinduism', 'General', 'O+', 'Single', '1122334455', 'diploma', 'Btech', 
              'HMRITM','GGSIPU', '2016', 'distinction', '95', 'full time', 'Web Developer', 'Comp Science', '2017', '95000', '8700925621', '44087062', 
              'gupta.tarun@gmail.com', 'Vasant Vihar', 'East delhi', 'Delhi', '110056']

input = []
input = driver.find_elements_by_xpath('//*[@id]')
i = 0
for xpaths in input:
    xpaths.send_keys(employes[i]) 
    print(employee[i])
    i += 1


driver.find_element_by_xpath('//*[@id="Submit"]').click()

这是登记表表格:-在

enter image description here

这是HTML代码,但是这里的输入标记是python变量,正如Django中所做的:

^{pr2}$

我想从“employees”列表中的文本填充表单中的所有WebElements选择py“文件,但我收到此错误:-

enter image description here

我不知道如何修复这个错误,任何帮助都将不胜感激! 提前谢谢。在


Tags: 代码frompyidinputbydriverselenium
2条回答
from selenium import webdriver
from selenium.webdriver.support.select import Select


driver = webdriver.Chrome()

driver.get('http://127.0.0.1:8000/employee/register/')



employees = { 'id_ApplicationNo':'1', 'id_ApplyOn':'2016-1-1', 'id_FirstName':'Tarun',
            'id_LastName':'Gupta', 'id_Gender':'Male', 'id_BirthDate':'1995-12-7', 'id_Nationality':'Indian',
            'id_Religion':'Hinduism', 'id_Category':'General', 'id_BloodGroup':'O+', 'id_MaritalStatus':'single',
            'id_AdhaarCardNo':'1122334455', 'id_Level':'diploma', 'id_Degree':'Btech', 'id_College':'HMRITM',
            'id_University':'GGSIPU', 'id_YearOfPassing':'2016', 'id_Class':'first', 'id_Percentage':'95',
            'id_EmpType':'part time', 'id_Designation':'Web Developer', 'id_Department':'Comp Science',
            'id_JoiningOn':'2017-3-3', 'id_Salary':'95000', 'id_MobileNo':'8700925621', 'id_PhoneNo':'44087062',
            'id_EmailId':'gupta.tarun@gmail.com', 'id_AddressLine':'Vasant Vihar', 'id_City':'East delhi',
            'id_State':'Delhi', 'id_PinCode':'110056' }

for key, value in employees.items():
    element = driver.find_element_by_id(key)
    if element.tag_name == "select":
       select = Select(element)
       select.select_by_visible_text(value)
    else:
       element.send_keys(value)


driver.find_element_by_id('Submit').click()

答案就在这里!

代码打开chrome,然后点击url,填写表单,提交表单,休眠3秒并刷新页面,直到数据库中填充了代码中列表中的10个员工数据。

from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options
import time

driver = webdriver.Chrome()
driver.get('http://127.0.0.1:8000/employee/register/')

#lists for 10 employees
employees = [['1', '2016-1-1', 'Tarun', 'Gupta', 'Male', '1995-12-7', 'Indian', 'Hinduism', 'General', 'O+', 'single',
              '1122334455', 'diploma', 'ITI', 'HMRITM', 'GGSIPU', '2016', 'distinction', '95', 'full time',
              'Web Developer', 'Comp Science', '2017-3-5', '95000', '8700925621', '44087062', 'gupta.tarun@gmail.com',
              'Vasant Vihar', 'East delhi', 'Delhi', '110056'],

             ['2', '2016-2-2', 'Arun', 'Aggarwal', 'Male', '1995-11-6', 'Pakistani', 'Islam', 'General', 'A+',
              'married', '1122334453', 'bachelors', 'BComm', 'IIIT-H', 'IIIT-H', '2016', 'first', '69', 'full time',
              'Sales Person', 'Marketing', '2017-4-5', '85000', '8700922621', '44227062', 'aggarwal.arun@gmail.com',
              'Mayur Vihar', 'East delhi', 'Delhi', '110091'],

             ['3', '2016-3-3', 'Varun', 'Malik', 'Male', '1995-10-5', 'American', 'Christian', 'OBCs', 'B+', 'single',
              '1122334425', 'masters', 'MCA', 'Hans Raj', 'DU', '2014', 'distinction', '98', 'part time',
              'Web Designer', 'Comp Science', '2017-5-5', '75000', '8700555621', '44567062', 'malik.varun@gmail.com',
              'Kailash Vihar', 'West delhi', 'Delhi', '110056'],

             ['4', '2016-4-4', 'Karun', 'Rao', 'Male', '1995-9-4', 'British', 'Christian', 'General', 'AB+', 'married',
              '1122334155', 'professional', 'Mtech', 'MRITM', 'GGSIPU', '2012', 'distinction', '88', 'full time',
              'Android Developer', 'Comp Science', '2017-6-5', '65000', '8777925621', '44098762', 'rao.karun@gmail.com',
              'Preet Vihar', 'Central delhi', 'Delhi', '110045'],

             ['5', '2016-5-5', 'Garima', 'Bhardwaj', 'Female', '1994-12-7', 'Chinese', 'Buddhist', 'STs', 'A-',
              'single', '1122734455', 'diploma', 'ITI', 'HMRITM', 'GGSIPU', '2016', 'second', '61', 'full time',
              'Network manager', 'IT', '2017-7-5', '55000', '8708825621', '44145062', 'bhardwaj.garima@gmail.com',
              'Nirman Vihar', 'South delhi', 'Delhi', '110023'],

             ['6', '2016-6-6', 'Jarun', 'Sachdeva', 'Male', '1993-12-7', 'Indian', 'Sikh', 'General', 'B-', 'single',
              '1122333755', 'masters', 'MCom', 'SRCC', 'DU', '2015', 'third', '58', 'part time',
              'Data Analyst', 'Comp Science', '2017-8-5', '45000', '8709755621', '44087682', 'sachdeva.jarun@gmail.com',
              'Kala Vihar', 'North delhi', 'Delhi', '110098'],

             ['7', '2016-7-7', 'Nikita', 'Garg', 'Female', '1995-6-7', 'Indian', 'Hinduism', 'SCs', 'AB-', 'married',
              '1122332155', 'professional', 'Phd', 'IIT-D', 'IIT-D', '2013', 'distinction', '78', 'part time',
              'Machine Learner', 'R%D', '2017-9-5', '35000', '8700236621', '41234062', 'garg.nikita@gmail.com',
              'Hans Vihar', 'East delhi', 'Delhi', '110236'],

             ['8', '2016-8-8', 'Parul', 'Goel', 'Female', '1995-2-3', 'Indian', 'Hinduism', 'General', 'O-', 'single',
              '1126634455', 'diploma', 'ITI', 'HMRITM', 'GGSIPU', '2016', 'distinction', '92', 'full time',
              'Web FrontEnd', 'Comp Science', '2017-3-1', '25000', '8111925621', '47345062', 'goel.parul@gmail.com',
              'Hari Vihar', 'Old delhi', 'Delhi', '110011'],

             ['9', '2016-9-9', 'Darun', 'Goyal', 'Male', '1996-1-5', 'Japanese', 'Hinduism', 'OBCs', 'O+', 'married',
              '1122388455', 'bachelors', 'BTech', 'MAIT', 'GGSIPU', '2015', 'first', '76', 'part time',
              'Web BackEnd', 'Comp Science', '2017-3-2', '15000', '8700944421', '49999062', 'goyal.darun@gmail.com',
              'Subhash Vihar', 'New delhi', 'Delhi', '110033'],

             ['10', '2016-10-10', 'Bhumika', 'Ghai', 'Female', '1996-7-7', 'Indian', 'Hinduism', 'General', 'A+',
              'single', '1122334895', 'bachelors', 'BTech', 'Amity', 'GGSIPU', '2016', 'distinction', '90', 'full time',
              'Web Developer', 'Comp Science', '2017-3-3', '40000', '8700956121', '43337062', 'ghai.bhumika@gmail.com',
              'Janak Vihar', 'East delhi', 'Delhi', '110078']]


for employes in employees:
    driver.find_element_by_id("id_ApplicationNo").send_keys(employes[0])
    driver.find_element_by_id("id_ApplyOn").send_keys(employes[1])
    driver.find_element_by_id("id_FirstName").send_keys(employes[2])
    driver.find_element_by_id("id_LastName").send_keys(employes[3])
    Select(driver.find_element_by_id("id_Gender")).select_by_visible_text(employes[4])
    driver.find_element_by_id("id_BirthDate").send_keys(employes[5])
    driver.find_element_by_id("id_Nationality").send_keys(employes[6])
    driver.find_element_by_id("id_Religion").send_keys(employes[7])
    Select(driver.find_element_by_id("id_Category")).select_by_visible_text(employes[8])
    driver.find_element_by_id("id_BloodGroup").send_keys(employes[9])
    Select(driver.find_element_by_id("id_MaritalStatus")).select_by_visible_text(employes[10])
    driver.find_element_by_id("id_AdhaarCardNo").send_keys(employes[11])
    Select(driver.find_element_by_id("id_Level")).select_by_visible_text(employes[12])
    driver.find_element_by_id("id_Degree").send_keys(employes[13])
    driver.find_element_by_id("id_College").send_keys(employes[14])
    driver.find_element_by_id("id_University").send_keys(employes[15])
    driver.find_element_by_id("id_YearOfPassing").send_keys(employes[16])
    Select(driver.find_element_by_id("id_Class")).select_by_visible_text(employes[17])
    driver.find_element_by_id("id_Percentage").send_keys(employes[18])
    Select(driver.find_element_by_id("id_EmpType")).select_by_visible_text(employes[19])
    driver.find_element_by_id("id_Designation").send_keys(employes[20])
    driver.find_element_by_id("id_Department").send_keys(employes[21])
    driver.find_element_by_id("id_JoiningOn").send_keys(employes[22])
    driver.find_element_by_id("id_Salary").send_keys(employes[23])
    driver.find_element_by_id("id_MobileNo").send_keys(employes[24])
    driver.find_element_by_id("id_PhoneNo").send_keys(employes[25])
    driver.find_element_by_id("id_EmailId").send_keys(employes[26])
    driver.find_element_by_id("id_AddressLine").send_keys(employes[27])
    driver.find_element_by_id("id_City").send_keys(employes[28])
    driver.find_element_by_id("id_State").send_keys(employes[29])
    driver.find_element_by_id("id_PinCode").send_keys(employes[30])
    driver.find_element_by_id("Submit").submit()
    time.sleep(3)
    driver.get('http://127.0.0.1:8000/employee/register/')

相关问题 更多 >

    热门问题