How do I attach a file when the input.file has a d

2019-07-17 15:58发布

I have run into a snag with dynamic ids. The attach_file command needs the id name of the input type="file". The problem is that the id is dynamic

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

Is there a way to get the id of an element? something like...

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

2条回答
beautiful°
2楼-- · 2019-07-17 16:47

attach_file internally just passes filename to Capybara::Node::Element#set method.

So you can use:

find(:xpath, ".//input[@name='file_upload']").set(filename)
查看更多
3楼-- · 2019-07-17 16:47

You can get the attribute of an element by doing:

element['attribute_name']

So for your example, to get the id attribute of the input with name 'file_upload', you can do:

find(:xpath, ".//input[@name='file_upload']")['id']
#=> "document_22"
查看更多
登录 后发表回答