我想上传一个csv文件到谷歌表在一个特定的单元格。因为我需要上传一个csv文件到某个单元格,我想我会尝试使用硒。我有一个单元格选择和上传弹出打开。但是每当我尝试send_keys时我得到了"元素不可交互"错误。文件类型的上传元素是否可能被隐藏?
我代码:
#open upload popup
cell_location.send_keys('ue03do')
#get iframe of upload popup
iframe_path = driver.find_element_by_xpath('/html/body/div[{}]/div[2]/iframe'.format(141))
driver.switch_to.frame(iframe_path)
time.sleep(1)
#navigate to upload file
upload = driver.find_element_by_xpath('//*[@id=":9"]/div')
upload.click()
time.sleep(1)
select_file = driver.find_element_by_xpath('//*[@id=":1f"]/div')
#pathetically attempt to upload file
time.sleep(1)
select_file.click()
select_file.send_keys('/Users/Documents/web_scaper/grant_proposals.csv')
如果有不清楚的地方请告诉我!谢谢你!
我一直在尝试很多不同的事情使这个工作。终于找到解决办法了。
你不应该点击"上传"按钮本身,在它的下面,你会看到一个带有inspect元素的输入。只需复制该输入元素的XPath,在这里执行。send_keys("file path")。
示例如下:
driver.find_element("xpath", '//*[@id="yDmH0d"]/div[2]/div[3]/div[2]/div[2]/div/div/div/div[1]/div/div[2]/div/input')