【问题标题】:make element visible to upload file using selenium and python使用 selenium 和 python 使元素可见以上传文件
【发布时间】:2020-09-16 16:29:04
【问题描述】:

这里是 Html sn-p:

 <div class="ia-ControlledFilePicker"><input class="ia-ControlledFilePicker-control icl-u-visuallyHidden" type="file" id="ia-FilePicker"><label class="ia-ControlledFilePicker-fakeControl" for="ia-FilePicker">Choose file</label><span class="ia-ControlledFilePicker-info">No file chosen</span></div>
    <input class="ia-ControlledFilePicker-control icl-u-visuallyHidden" type="file" id="ia-FilePicker-resume">

这是 CSS 位:

.icl-u-visuallyHidden {
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }

目的:使用 selenium python 上传文件到页面。我也不能从 selenium 中点击“选择文件”按钮,因为它是隐藏的。

到目前为止,我尝试使元素可见但不起作用的方法:

    # change_visibility = "document.setElementById('ia-FilePicker').style.visibility='visible';"
    # changWebElemente_display = "document.setElementById('ia-FilePicker').style.display='block';"
    # self.driver.execute_script(change_visibility)
    # self.WebElement.execute_script(change_display)

#

    # change_height = "document.getElementsByClassName('ia-FilePicker.ia-ControlledFilePicker-control.icl-u-visuallyHidden').style.height='100px';"
    # change_width = "document.getElementsByClassName('ia-FilePicker.ia-ControlledFilePicker-control.icl-u-visuallyHidden').style.width='100px';"
    # self.driver.execute_script(change_height)
    # self.driver.execute_script(change_width)

#

WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.ia-FilePicker.ia-ControlledFilePicker-control.icl-u-visuallyHidden#ia-FilePicker-resume"))).style.display = "block" ) 

还有更多。我已经为此工作了好几天。

错误:消息:javascript 错误:无法读取 null 的属性“样式”。

我也知道 AutoIT,但我现在想在 Chrome 和 Python 上坚持使用 Selenium。我能做些什么?感谢您的帮助。

【问题讨论】:

    标签: javascript python python-3.x selenium selenium-chromedriver


    【解决方案1】:

    通过设置不透明度使字段可见

    self.driver.execute_script("document.querySelector(\"input[id*='ia-FilePicker-resume']\").style.opacity='1'");
    

    然后尝试上传文件

    【讨论】:

    • self.driver.execute_script("document.querySelector(\"input[id*='ia-FilePicker-resume']\").style.opacity='1'") file_input = self.driver.find_elements_by_id("ia-FilePicker-resume") file_input.send_keys(os.getcwd() + '/resume.txt') 我还是有同样的错误。
    猜你喜欢
    • 2016-07-18
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    相关资源
    最近更新 更多