当前位置: 首页 > 知识库问答 >
问题:

不能使用变量在IRB后var=Watir::Browser.start'url'

仲高超
2023-03-14
1.9.3-p327 :001 > require 'watir-webdriver'
=> true 
1.9.3-p327 :002 > b = Watir::Browser.new

然后firefox启动了,我什么也做不了。我的IRB不允许我输入新命令。

尝试了浏览器初始化的不同变体:

b = Watir::Browser.new :opera
b = Watir::Browser.new :firefox
b = Watir::Browser.start 'url'

应该出现这样的内容:

=> #<OperaWatir::Browser:0x1496e57 @active_window=#<OperaWatir::Window:0x1eb1db2
@browser=#<OperaWatir::Browser:0x1496e57 ...>>,@driver=#
Java::ComOperaCoreSystems::OperaDriver:0xeabd2f>>

但控制台中没有输出。60秒后,浏览器关闭,我得到以下输出:

1.9.3-p327 :002 > b = Watir::Browser.new
Selenium::WebDriver::Error::WebDriverError: unable to obtain stable firefox connection
in 60 seconds (127.0.0.1:7055)

尝试了chrome、firefox,浏览器打开,但irb锁定。

操作系统:Ubuntu

Ruby:2.0.0(也在1.9.3上试用过)

共有1个答案

翁宏茂
2023-03-14

Selenium::WebDriver::Error::WebDriverError无法在60秒内(127.0.0.1:7055)获得稳定的firefox连接——这通常发生在浏览器版本和web驱动程序版本不匹配时。我个人也观察到了同样的情况。唯一的解决方案是将watir webdriver和官方网站上记录的浏览器版本同步。

以下是一些事实的好资源:

resource1

resource2

resource3

希望它能帮到你。

 类似资料:
  • 我想使用传递多个环境变量。 我讨厌我必须为我想设置的每个变量编写。 有没有更好的方法来做到这一点? 我想避免将环境变量作为< code>json传递给newman。

  • 问题内容: 我有几个字段,每个字段都是这样的: 通过使用带有计数器的循环,我希望能够说出fieldx。其中x是该循环中计数器的值。这意味着如果我的数组中有6个条目,则将为fields1-field6提供值。 是否可以使用fieldx? 问题答案: 您可以使用反射来完成此操作,但是通常最好在数组中声明字段。代替: 你可以这样做: 然后,您可以遍历数组来设置值:

  • jdk 11中使用“var”时编译时的问题 如何避免IntelliJ重置语言级别?

  • 问题内容: 如果声明变量而不使用“ var”,则变量始终变为GLOBAL。 在函数内部声明全局变量是否有用?我可以想象在某个事件处理程序中声明一些全局变量,但这有什么用呢?更好地使用RAM? 问题答案: 不,没有RAM好处或类似的好处。 w3schools谈论的是我所说的“内隐全球性恐怖” 。考虑以下功能: 看起来很简单,但是由于线路上的错字,它返回,而不是。并创建一个带有输入错误名称的全局变量:

  • 我是Gradle的新手,正在尝试通过gradle.properties文件创建一个可配置的变量。 为此,我创建了一个渐变。属性,并定义了如下生成目录: 在我的文件中,我引用了这样的变量: 这不起作用。如果我将替换为中的字符串,它会构建到正确的位置。为什么会发生这种情况? 以下是完整的build.gradle文件:

  • 问题内容: “ var”是可选的吗? 如同 ? 我发现它们都可以通过我的测试工作,我认为这是可选的。那正确吗? 问题答案: 他们的意思不同。如果使用变量,则在范围内声明变量(例如,在函数中)。如果不使用,则变量会在作用域的各个层中冒出气泡,直到遇到给定名称的变量或全局对象(如果在浏览器中是窗口,则为窗口),然后将变量附加到该变量。这与全局变量非常相似。但是,仍然可以使用删除它(很可能是其他人的代码