Python上传图像/文件与selenium webdriver

时间:2016-06-18 00:56:20

标签: python selenium firefox selenium-webdriver webautomation

下面是一些crowdfire.com HTML代码,其中我试图在输入类中上传文件= ...

while ((ch = getopt(argc, argvm "s:E:")) != -1) {
    printf(" %d\n", ch);
}
  

以下是我到目前为止的情况。我已经创建了驱动程序实例,该代码在登录网站之前没有问题,并找到所有其他xpath

<div id="ember1089" class="ember-view">
    <div id="ember1090" class="action__addImage pointer ember-view tooltipstered"> 
         <div data-ember-action="1091">
                <img class="iconImg iconImg--camera" src="/publish/images/icon-camera-b432ac4c5b369d4616baf097b951d9b4.png"/>
                <span>Add an image</span>
         </div>
<input class="js-file-input action__fileInput" type="file" data-ember-action="1092"/>
</div>

以下是我得到的错误,我真的不明白是什么问题,在网站上有一个“添加图像”链接。如果单击它会弹出窗口的资源管理器,用户可以从中选择文件并上传它。

image = driver.find_element_by_xpath('.//*[@id=\'ember1089\']/input')
time.sleep(2)
print 'found element'
image.send_keys('C:\Users\Brian\Desktop\Empire_fort\Bots\GetPICtures\Empire.jpg)
print 'uploading'
time.sleep(5)

谢谢!

Ps更新,它适用于webdriver.Chrome()实例但不适用于Firefox或phantomjs

1 个答案:

答案 0 :(得分:0)

我怀疑您需要input首先显示

image = driver.find_element_by_css_selector('#ember1089 input')
driver.execute_script("arguments[0].style.display = 'block';", image);

image.send_keys('C:\Users\Brian\Desktop\Empire_fort\Bots\GetPICtures\Empire.jpg')