使用 Selenium 和 Python 自动将多个响应填充到谷歌表单中
先决条件: Selenium
Selenium 是通过程序控制网络浏览器和执行浏览器自动化的强大工具。它适用于所有浏览器,在所有主要操作系统上工作,其脚本是用各种语言编写的,即 Python 、 Java 、 C# 等..我们将使用 Python。Selenium教程涵盖了所有主题,如-网络驱动程序,网络元素,单元测试与Selenium。
这里的任务是使用 python 中的 selenium 用相同的谷歌表单填充多个响应。本例中使用的谷歌表单链接如下:
表格链接–点击此处
谷歌表单
该表单有五个条目:
- 名字
- 电子邮件
- 地址
- 电话号码
- 评论
姓名、电子邮件和电话号码具有相同的类名quantumwiztextinputapeinput和地址& Comments 具有相同的类名quantumwiztextinputapetextareinput。数据以列表形式出现。
给定的程序还使用计数,原因是文本框包含一个列表,其类名为“quantumWizTextinputPaperinputInput”,而 textareaboxes 包含一个列表,其类名为“quantumwiztextinputapertextareinput”,当这两个类被添加时,它会生成一个列表。数据也以列表的形式提供,因此计数变量将随着每个数据变量而增加。
示例:
数据值
[姓名、电子邮件、电话号码、地址、评论] 数据= [ ['Mary D Joiner ',' MaryDJoiner@gmail.com ',' 4079025063 ',' Maitland 麦当劳大道 2474 号',' NA ', ['Karen B Johnson ',' KarenBJohnson @ gmail.com ',' 3153437575 ',' GRAND ISLE 橡树街 2143 号',' NA ', ]
方法
为了实现我们所需的功能,需要按照完美的顺序执行给定的步骤:
- 导入Selenium和时间模块
- 添加 chrome 驱动程序路径和表单网址
- 添加一些延迟,直到页面完全加载
- 以列表的形式添加数据
- 迭代每个数据并填充细节
- 关窗
程序:
Python 3
# Import Module
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# open Chrome
driver = webdriver.Chrome(
'C:/Users/HP/Desktop/Drivers/chromedriver_win32/chromedriver.exe')
# Open URL
driver.get('https://forms.gle/vWVmojtWdfFvEj8V6')
# wait for one second, until page gets fully loaded
time.sleep(1)
# Data
datas = [
['Mary D Joiner', 'MaryDJoiner@gmail.com', '4079025063',
'2474 McDonald Avenue,Maitland', 'NA'],
['Karen B Johnson', 'KarenBJohnson@gmail.com',
'3153437575', '2143 Oak Street,GRAND ISLE', 'NA'],
]
# Iterate through each data
for data in datas:
# Initialize count is zero
count = 0
# contain input boxes
textboxes = driver.find_elements_by_class_name(
"quantumWizTextinputPaperinputInput")
# contain textareas
textareaboxes = driver.find_elements_by_class_name(
"quantumWizTextinputPapertextareaInput")
# Iterate through all input boxes
for value in textboxes:
# enter value
value.send_keys(data[count])
# increment count value
count += 1
# Iterate through all textareas
for value in textareaboxes:
# enter value
value.send_keys(data[count])
# increment count value
count += 1
# click on submit button
submit = driver.find_element_by_xpath(
'//*[@id="mG61Hd"]/div[2]/div/div[3]/div[1]/div/div/span/span')
submit.click()
# fill another response
another_response = driver.find_element_by_xpath(
'/html/body/div[1]/div[2]/div[1]/div/div[4]/a')
another_response.click()
# close the window
driver.close()
输出:
[https://media.geeksforgeeks.org/wp-content/uploads/20201129172534/FreeOnlineScreenRecorderProject4.mp4](https://media.geeksforgeeks.org/wp-content/uploads/20201129172534/FreeOnlineScreenRecorderProject4.mp4)版权属于:月萌API www.moonapi.com,转载请注明出处