$ b.link(:text =>"注册").when_present.click不在yahoo上工作

Wow*_*Bow 2 ruby selenium watir watir-webdriver

我是Watir WebDriver的新手.我正在玩这个框架,我包括下面的代码,但第二行不起作用

$b = Watir::Browser.new :ie #browser
$b.goto "www.yahoo.com" 
$b.link(:text => "Sign up").when_present.click
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它没有得到注册链接.我看到雅虎的消息来源如下

<span class="tab-caption small y-txt-2">New here? <a href="http://hsrd.yahoo.com/_ylt=A2KLtVHgLNtQHnMBTk.bvZx4/SIG=13tjppi7u/EXP=1356627552/**https%3A//edit.yahoo.com/registration%3F.src=fpctx%26.intl=us%26.done=http%253A%252F%252Fwww.yahoo.com%252F" class="y-link-1">Sign Up</a></span>   
Run Code Online (Sandbox Code Playgroud)

我的代码有什么问题?我也试过没有when_present,它说元素是不可见的.

Jus*_* Ko 5

通过文本定位元素区分大小写.

由于链接显示"注册",您的定位器还需要说"注册"(而非"注册"):

$b.link(:text => "Sign Up").when_present.click
Run Code Online (Sandbox Code Playgroud)

请注意,如果要使定位器不区分大小写,可以使用带有ignore case修饰符的正则表达式:

$b.link(:text => /sign up/i).when_present.click
Run Code Online (Sandbox Code Playgroud)