我遇到了动态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')
答案 0 :(得分:8)
attach_file内部只是将文件名传递给Capybara::Node::Element#set
方法。
所以你可以使用:
find(:xpath, ".//input[@name='file_upload']").set(filename)
答案 1 :(得分:1)
您可以通过执行以下操作获取元素的属性:
element['attribute_name']
因此,对于您的示例,要获取名为“file_upload”的输入的id属性,您可以执行以下操作:
find(:xpath, ".//input[@name='file_upload']")['id']
#=> "document_22"