我正在尝试自动上传图像。上载器是Flash对象,不能使用AutoIt。因此,我尝试使用webdriver来解决此问题。

其想法是使用指向服务器上保存的图像的链接来“设置”图像上传器的value属性。我的问题是,有没有一种方法可以在webdriver中设置元素的属性?我知道有一种获取价值的方法(get_attribute)。我正在使用Python / Selenium。

输入字段是:

input type="hidden" value="" name="allImages" id="allImages"


,我已经尝试过:

image = wd.find_element_by_id("allImages")
image.value = "http://optimusprime/uploads/b31f8a31-9d4e-49a6-b613-fb902de6a823.jpg"


脚本运行无错误,但未设置属性值。有人可以指出正确的属性设置方法吗? (如果有的话)

评论

与JS类似:设置输入值而不是sendKeys()-SU
上的Selenium Webdriver nodejs

#1 楼

在阅读了来自网络驱动程序google组的答复后,我写了一个javascript片段,如下所示:

wd.execute_script("document.getElementById('allImages').value = '../uploads/b31f8a31-9d4e-49a6-b613-fb902de6a823.jpg';")


或如Sam在评论中建议的那样:

image = wd.find_element_by_id("allImages")
wd.execute_script("arguments[0].value = 'foo.jpg';", image) 


来自网络驱动程序google组的答案:


在这种情况下,建议使用“ execute_script”方法。

不,WebDriver中没有,因为它的目的是模仿用户,而用户
无法直接设置属性。


评论


您可以使用以下代码简化此操作:image = wd.find_element_by_id(“ allImages”)wd.execute_script(arguments [0] .value ='../uploads/b31f8a31-9d4e-49a6-b613-fb902de6a823.jpg';“,图片)

–山姆·伍兹(Sam Woods)
2012年7月3日在22:36