我收到此错误消息:couldn't register this node: hub down or not responding.当我尝试按照此快速入门指南进行操作时:http :
//code.google.com/p/selenium/wiki/Grid2
当我运行以下命令时:
java -jar selenium-server-standalone-2.14.0.jar -role node -hub http://localhost:4444/grid/register
Run Code Online (Sandbox Code Playgroud)
我下载了 selenium 独立 jar 的 2.17.0 版本...
我不知道在那之后该怎么办。
这个想法是在一个任意长度的字符串中只允许四个'a'实例和两个'b'实例.
现在,其他角色并不重要,我所关心的只有四个'a'和两个'b'.我想出的就是:
m{
^[^ab]*
(
(b[^ab]*b[^ab]*a[^ab]*a[^ab]*a[^ab]*a)|
(b[^ab]*a[^ab]*b[^ab]*a[^ab]*a[^ab]*a)|
(b[^ab]*a[^ab]*a[^ab]*b[^ab]*a[^ab]*a)|
(b[^ab]*a[^ab]*a[^ab]*a[^ab]*b[^ab]*a)|
(b[^ab]*a[^ab]*a[^ab]*a[^ab]*a[^ab]*b)|
(a[^ab]*b[^ab]*b[^ab]*a[^ab]*a[^ab]*a)|
(a[^ab]*b[^ab]*a[^ab]*b[^ab]*a[^ab]*a)|
(a[^ab]*b[^ab]*a[^ab]*a[^ab]*b[^ab]*a)|
(a[^ab]*b[^ab]*a[^ab]*a[^ab]*a[^ab]*b)|
(a[^ab]*a[^ab]*b[^ab]*b[^ab]*a[^ab]*a)|
(a[^ab]*a[^ab]*b[^ab]*a[^ab]*b[^ab]*a)|
(a[^ab]*a[^ab]*b[^ab]*a[^ab]*a[^ab]*b)|
(a[^ab]*a[^ab]*a[^ab]*b[^ab]*b[^ab]*a)|
(a[^ab]*a[^ab]*a[^ab]*b[^ab]*a[^ab]*b)|
(a[^ab]*a[^ab]*a[^ab]*a[^ab]*b[^ab]*b)
)
[^ab]*$
}x;
Run Code Online (Sandbox Code Playgroud)
(一如既往,这是Perl正则表达式)
除了仅使用附加括号重新组合案例之外,还有更好的解决方案吗?在正则表达式中,对已接受的案例进行置换似乎有点"错误".
在不同的借口下,在stackoverflow上询问了这个问题.那个问题当时被删除了,因为写得不好,没有尝试解决问题,而且很明显,这是TCS课程的作业.无论如何,我尝试回答这个问题,并提出了一条消息,该问题已被删除(同时).无论如何,手头的问题对我来说似乎很有意思,所以我决定再问一遍,但是有更好的借口.)
我想在设置对象属性时调用函数:
class MyClass():
myattrib = None
def __setattr__(self, prop, val):
self.myattrib = val
print("setting myattrib")
x = MyClass()
x.myattrib = "something"
Run Code Online (Sandbox Code Playgroud)
问题是,这会产生无限递归。
这个想法是在设置成员变量时调用一个函数(并实际设置该成员变量),但同时运行额外的代码(print()在上面的示例中显示了语句)。
另一个明显的方法是使用set_attrib()函数,这在 Java 中很常见,但我想用pythonic 的方式来做,直接设置属性,但同时运行额外的代码。
在Registration过程中,我们需要Confirmation code通过SMS发送给用户.但我对此并不了解.我是新手.我不确定通过什么方法可以实现这一点.
任何人都可以指导我实施吗?喜欢引用任何SDKs或任何示例.