Archive for the ‘code’ tag
Find Element by XPath
I had to click a h4 headline.
<h4 id="addproject">Create a new project</h4>
This did not work.
browser.h4(:id, "addproject").click
I posted a question to wtr-general mailing list and Angrez Singh was kind enough to help.
This will click h4 headline.
browser.element_by_xpath("//h4[@id='addproject']").click
Watir Has A New Method: after?
Imagine that you have two links. Both links are the same.
<a>text</a>
The only thing that makes them different is that the second one is located after an image.
<a>text</a> <img src="image.png" /> <a>text</a>
Of course, you just have to click the second link. You have already tried this.
browser.link(:text, "text").click
But, it always clicks the first link. There is a way.
browser.link(:after?, browser.image(:src, /image/)).click
This is so cool.
(You will need Watir 1.5. Bret Pettichord posted that at wtr-general.)
Enter Non-English Character in Text Field
I use Watir a lot. I wanted to set a text field to željko. I did not know it would not be an easy task. I tried this code.
browser.text_field(:index, 1).set("željko")
But, text field was set to §eljko, Ĺľeljko, just eljko or some other string (depending if I try from irb, or from file that is saved in some encoding).
I searched wtr-general and found different solutions.
I added
require "win32ole" WIN32OLE.codepage = WIN32OLE::CP_UTF8
and
$KCODE = 'utf8' require 'jcode'
to the top of the file.
I tried TextField#value= instead of TextField#set.
browser.text_field(:index, 1).value=("željko")
I saved file as UTF-8.
Nothing worked. I sent my question to wtr-general and Paul Carvalho answered.
[...] I have a Watir script [...] It reads the inputs from an Excel file into an Array and then I use the array data to populate the text fields. [...] I didn’t use any special ‘require’ lines or KCodes. I just let Excel worry about holding the data [...]
I tried it, and it worked! It was simple, too. Just a few lines of code.
require 'watir'
excel = WIN32OLE::new('excel.Application')
workbook = excel.Workbooks.Open('C:\data.xls') # open file
worksheet = workbook.Worksheets(1) # the first worksheet
cell = worksheet.Range('a1')['Value'] # value of single cell
browser = Watir::IE.start('http://www.google.com/') # start IE
browser.text_field(:index, 1).set(cell) # set text field to value from cell
There is a page about scripting Excell, but it is unavailable at the moment. Fortunately, there is Google cache version.

