如何使用Watir向网页添加和执行JavaScript函数

如何使用Watir向网页添加和执行JavaScript函数,javascript,ruby,selenium-webdriver,watir,Javascript,Ruby,Selenium Webdriver,Watir,如何将JavaScript函数添加到给定的网页,执行它,然后用Watir读取结果 require 'watir' myfn = %< function samsFunction () { var samsBigVariable; window.samsBigVariable = "my secret goes here"; }; samsFunction(); >.gsub(/\s+/, ' ').strip b = Watir::Browser.new

如何将JavaScript函数添加到给定的网页,执行它,然后用Watir读取结果

require 'watir'
myfn = %<
  function samsFunction () {
    var samsBigVariable;
    window.samsBigVariable = "my secret goes here";
  };
  samsFunction();
>.gsub(/\s+/, ' ').strip
b = Watir::Browser.new :firefox
b.goto "google.com"
b.execute_script myfn
b.execute_script "window.samsBigVariable"
 => nil
需要“watir”
myfn=%<
函数samsFunction(){
var样本变量;
window.samsBigVariable=“我的秘密就在这里”;
};
samsFunction();
>.gsub(/\s+/,'').strip
b=Watir::Browser.new:firefox
b、 转到“google.com”
b、 执行脚本myfn
b、 执行_脚本“window.samsBigVariable”
=>零

在控制台中执行相同的JavaScript会导致变量被设置并在调用时返回。执行脚本有什么不同?

您需要显式返回值:

b.execute_script "return window.samsBigVariable"
#=> "my secret goes here"

您需要显式返回值:

b.execute_script "return window.samsBigVariable"
#=> "my secret goes here"

好吧,这样行了,我觉得有点傻。也许你能帮我解决我最终想要解决的问题:好吧,那行得通,我觉得有点傻。也许你能帮我解决我最终想要解决的问题:为那些没有解释就否决了它的人们干杯。为那些没有解释就否决了它的人们干杯。