4

在我找到一个元素之后,让我们说一个span. 有没有办法保存它的属性,或者类似的东西,所以span即使它不再存在于屏幕上,也不能“点击”?

我需要的是一种在执行一些span从屏幕上删除的操作后访问其指向的页面的方法。

我知道 watir-webdriver 用于 GUI 测试,因此应该只允许人类可以执行的操作。但我希望还有办法。

4

2 回答 2

4

我需要查看您网页的来源,但通常您可以这样做:

1.9.3p392 :001 > require "watir-webdriver"
 => true 
1.9.3p392 :002 > b = Watir::Browser.start "stackoverflow.com"
 => #<Watir::Browser:0x7f93652a09b4f1a2 url="http://stackoverflow.com/" title="Stack Overflow"> 

定义一个新变量

1.9.3p392 :004 > a = b.span(:id, "hlinks-custom").a(:text, "about").href
 => "http://stackoverflow.com/about" 

点击另一个链接

   1.9.3p392 :005 > b.a(:text, 'faq').click
     => [] 
    1.9.3p392 :006 > b.title
     => "Frequently Asked Questions - Stack Overflow" 

最后将您的浏览器重定向到预设变量“a”

1.9.3p392 :007 > b.goto a
 => "http://stackoverflow.com/about" 
于 2013-04-21T22:56:37.070 回答
2

是的,有一种方法,只需在元素存在时保存它,然后再使用它。这是一个示例,其中 watir 开车到 google.com,当您看到“mark...”打印时,您可能会关闭浏览器并会看到变量“element”仍然保存其中的值...

  require 'watir';

  ie = Watir::Browser.new();
  ie.goto("google.com");
  puts("mark...");
  element = ie.span(:id, "gbqfsa").html();
  sleep(5);
  #close the browser while you sleep...
  puts(element);

它打印元素的 html 值,因此它仍然保留引用

于 2013-04-21T21:37:01.700 回答