这是HTML代码段:
<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。我能做什么?谢谢您的帮助。
答案 0 :(得分:0)
通过设置不透明度使字段可见
self.driver.execute_script("document.querySelector(\"input[id*='ia-FilePicker-resume']\").style.opacity='1'");
然后尝试上传文件