选择隐藏元素以使用selenium和python上传文件

问题描述 投票:0回答:1

我觉得我已经很接近了,但我正在努力解决这个问题,我有一个按钮,我单击该按钮将打开操作系统文件窗口,但要发送文件的元素被隐藏,我不知道如何取消隐藏它。我研究的大部分内容已经有几年历史了,并且方法已被弃用。

这是 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)
python selenium-webdriver
1个回答
0
投票

为了回答我的问题,我最终使用 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')
© www.soinside.com 2019 - 2024. All rights reserved.