我觉得我已经很接近了,但我正在努力解决这个问题,我有一个按钮,我单击该按钮将打开操作系统文件窗口,但要发送文件的元素被隐藏,我不知道如何取消隐藏它。我研究的大部分内容已经有几年历史了,并且方法已被弃用。
这是 html 代码片段。
<p-fileupload _ngcontent-ims-c84="" mode="basic" maxfilesize="40000000" chooselabel="Upload" class="p-element" style="float: right;">
<!---->
<div class="p-fileupload p-fileupload-basic p-component ng-star-inserted">
<p-messages class="p-element ng-tns-c81-29 ng-star-inserted">
<div role="alert" class="p-messages p-component ng-tns-c81-29">
<!---->
<!---->
<!---->
<!---->
</div>
</p-messages>
<span tabindex="0" pripple="" class="p-ripple p-element p-button p-component p-fileupload-choose">
<span class="p-button-icon p-button-icon-left pi pi-plus">
</span>
<span class="p-button-label">Upload</span>
<input type="file" accept="undefined" class="ng-star-inserted">
<!---->
</span>
</div>
<!---->
</p-fileupload>
这是我的代码,values_g 是从单元格复制的文件名。
driver.find_Element(By.xpath("//input[@type=\"file\"]")).sendkeys(values_g)
为了回答我的问题,我最终使用 pyautogui 将值写入操作系统文件窗口。 我遇到的问题是它会打字太快并切断一些主要字符,我减慢了打字间隔(不是问题)并在打字前添加了 1 秒睡眠(解决了问题)
import pyautogui
time.sleep(1) #leave this other pyautogui cuts off leading characters
pyautogui.write("write something", interval=0.02) # interval slows type speed
pyautogui.press('enter')