Watir:if语句有问题

时间:2016-09-14 01:01:02

标签: ruby watir

我花了一些时间看,但没有发现任何有用的东西,所以我决定问问自己。

无论如何,我试图制作一个非恶意机器人来响应论坛上的某些论坛帖子。但是,我坚持制作一个if语句来检测线程是否具有某个名称,如果有,则单击该线程。这就是我最接近的地方:

def Replies()
  while true
    $browser.div(:text => ':HexBot/Summon')
    sleep(5)
    $browser.goto <insert link here. i didn't include it for privacy reasons>
  end
end

这个应该做的是每5秒刷新一次页面。如果它看到一个帖子说&#39;:HexBot / Summon&#39;然后它会点击该线程。然而。我刚收到一个错误。我尝试完全没有if语句,但这也给了我一个错误。

1 个答案:

答案 0 :(得分:1)

我不完全确定我理解这个问题,所以请告诉我这是不是你要求的:

def Replies()
  until $browser.div(:text => ':HexBot/Summon').present?
    sleep(5)
    $browser.goto <insert link here>
  end
  $browser.div(:text => ':HexBot/Summon').click
end

应该每隔5秒(永远)重新加载页面,直到出现所需的文本,此时将单击文本。您也可以使用$browser.refresh代替$browser.goto语句(假设您从正确的页面开始)。

最后,您标记了此问题watir。我使用watir-webdriver,并且存在一些差异,但希望我在此提供的内容适合您。