2

我遇到了动态 ID 的障碍。attach_file 命令需要输入 type="file" 的 id 名称。问题是id是动态的

(id="document_22") #indicating the 22nd document uploaded to this section.

有没有办法获取元素的id?就像是...

attach_file(find(:xpath, ".//input[@name='file_upload']").get('@id'),
'C:\\Users\\testbox\\Documents\\testdoc.xls')
4

2 回答 2

8

attach_file 在内部只是将文件名传递给Capybara::Node::Element#set方法。

所以你可以使用:

find(:xpath, ".//input[@name='file_upload']").set(filename)
于 2013-03-01T19:53:20.697 回答
1

您可以通过执行以下操作获取元素的属性:

element['attribute_name']

因此,对于您的示例,要获取名称为“file_upload”的输入的 id 属性,您可以执行以下操作:

find(:xpath, ".//input[@name='file_upload']")['id']
#=> "document_22"
于 2013-03-01T19:49:26.850 回答