使用Selenium、Python和Excel自动化Web表单填充
我在excel文件的一列中循环,以自动完成表格并提交。然而,挑战在于:使用Selenium、Python和Excel自动化Web表单填充,python,excel,selenium,browser-automation,Python,Excel,Selenium,Browser Automation,我在excel文件的一列中循环,以自动完成表格并提交。然而,挑战在于: 我无法将excel列中的值输入表单的第一个字段 表单的div元素在发送值之前为我提供了不可单击的元素。 在此处查看表单的外观: Img1: Img2: 当您手动开始键入名称时,第一个字段(艺术家)会自动打开,其中包含值,然后您可以选择该选项 我的Python脚本如下: from selenium import webdriver import pandas as pd from selenium.webdriv
- 我无法将excel列中的值输入表单的第一个字段
- 表单的div元素在发送值之前为我提供了不可单击的元素。 在此处查看表单的外观:
from selenium import webdriver
import pandas as pd
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
#Read Data file
df = pd.read_excel('try.xlsx')
#Import Driver components
driver = driver = webdriver.Chrome('/home/dev-mike/.wdm/drivers/chromedriver/linux64/88.0.4324.96/chromedriver')
url = 'myurl'
username = 'myname.com'
password = '****'
driver.get(url)
time.sleep(2)
driver.find_element_by_id("email").send_keys(username)
time.sleep(1)
driver.find_element_by_id("password").send_keys(password)
time.sleep(1)
driver.find_element_by_xpath("//*[@id='app']/main/div/div/div/div/div[2]/form/div[4]/div/button").click()
time.sleep(1)
driver.find_element_by_xpath("/html/body/div/div[1]/div[3]/div[1]/div[2]/div[2]/button").click()
# #Inside Dashboard
for i in df.index:
entry = df.loc[i]
#Name Field
driver.find_element_by_xpath('/html/body/div/div[2]/aside[1]/div/div[2]/div/form/div[1]/div/div/div/div[2]/span').click()
time.sleep(10)
artist_input = driver.find_element_by_xpath('/html/body/div/div[2]/aside[1]/div/div[2]/div/form/div[1]/div/div/div/div[3]/ul/li[1]/span/span')
artist_input.send_keys(entry['Artist'])
time.sleep(1)
title_input = driver.find_element_by_id('input-2')
title_input.send_keys(entry['Title'])
time.sleep(1)
medium_input = driver.find_element_by_id('input-3')
medium_input.send_keys(entry['Medium'])
time.sleep(1)
“我的表单”字段元素的横截面如下所示:
这是基于在该输入字段中键入Paul的假设
艺术家
开始键入。。。
-
保罗·高更
-
保罗卡斯帕
-
里戈
-
没有找到任何元素。考虑更改搜索查询。
-
什么也没找到
使用:
driver.find_element_by_xpath(f"//div[@role='option'][normalize-space(.)='{your_input_text}']").click()
如果它不起作用,请说它是什么网站,我帮你查一下。@NatRiddle你能再查一下吗。我已经添加了代码段,但没有成功。但是我怎样才能联系到你。你可以给我发邮件,给你。safarzadeh1999@gmail.com