使用 watir-webdriver 选择本地文件

use*_*287 4 ruby automation filefield watir-webdriver

我正在尝试使用 watir-webdriver 从 html 页面自动选择本地文件的过程

我有以下 html

<body>
<form method="post" action="upload" enctype="multipart/form-data">
test file to upload: <input type="file" name="file" size="60" id="test"/>
<input type="submit" value="Upload" name="upload" id="upload" />
</form>
</body>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用idof单击输入test并设置我希望使用 watir-webdriver 上传的本地文件的路径。

我可以使用以下命令单击按钮以显示选择窗口

@browser.goto 'http://www.test.com'
@browser.button(:id => 'test').click
Run Code Online (Sandbox Code Playgroud)

但是,我正在尝试使用以下方法(通过研究,这似乎是正确的方法。虽然不起作用)

@browser.file_field(:name => 'file').set("C:\\path\\to\\test\\file\\validTest.xml")
Run Code Online (Sandbox Code Playgroud)

这导致以下错误

Watir::Exception::UnknownObjectException: unable to locate element, using {:name=>"file",    :tag_name=>"input", :type=>"file"}
Run Code Online (Sandbox Code Playgroud)

@browser.button(:id => 'test').set("C:\\path\\to\\test\\file\\validTest.xml")
Run Code Online (Sandbox Code Playgroud)

导致以下错误

NoMethodError: undefined method `set' for #<Watir::Button:0x3859920>
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙吗?我正在努力理解为什么该file_field选项不起作用。

小智 5

尝试使用以下函数:

@browser.file_field(:id,"upload").set("filepath")
Run Code Online (Sandbox Code Playgroud)

此外,如果您使用的是 IE 浏览器,请确保您使用的是 IEDriverServer_Win32_2.33.0,因为它在此驱动程序上运行良好,而不是在最新驱动程序上。