我正在从selenium-1升级到selenium-2并试用新的HtmlUnit驱动程序.我已经尝试了一些基本的测试(打开一个页面,get_text,..)似乎
我很高兴听到你对它的印象.我希望你会发现我错了(我可以没有(1)速度但(2)稳定性至关重要)?是否有HtmlUnit与selenium驱动程序的速度比较?
出于好奇,我想知道gmail是如何做到的.在查看页面的源代码后,您没有看到任何链接,onclick方法和javascript.我知道他们隐藏了javascript,但页面仍然知道有点击.是否有运行守护程序线程来监听您的点击?它是如何工作的??
我在Firefox上使用xpath引擎.我有html:
<span>
<b>prefix one</b> not bold part
</span>
<span>
prefix two not bold part
</span>
Run Code Online (Sandbox Code Playgroud)
我希望所有span
具有以"前缀一"开头的子文本的s.
我试过xpath:
//span[starts-with(child::text(), "prefix one")]
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为b
标签是干扰的.你是如何解决这个问题的?
谢谢
我的幼稚方法如下:
function isClickable(id){
elem = document.getElementById(id);
if (elem.nodeName.toLowerCase() == 'a' || typeof(elem.click) != 'undefined'){
return true;
}else{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的更好的吗?
我想使用ssh在许多计算机上安装java,所以我想编写一个bash脚本(大致):
for c in computers
do
scp jre--.rpm $c
ssh $c 'sudu -s; chmod a+x jre--.rpm ; ./jre--.rpm; echo "success!"'
done
Run Code Online (Sandbox Code Playgroud)
问题是在java安装期间我需要"读取"通知并在结尾处输入"是".我该怎么做?有没有比"期待"更简单的方法?如果不是我如何在bash脚本中使用它?
非常感谢
我想知道这段代码是否会有任何问题:
我有一个在许多线程之间共享的向量.每次线程必须从向量中添加/删除东西时,我都会在synchronized
块下进行.但是,主线程有一个调用:
System.out.println("the vector's size: "+ vec.size());
Run Code Online (Sandbox Code Playgroud)
不是synchronized
.
这会引起麻烦吗?
我想转换以下代码:
...
urls = [many urls]
links = []
funcs = []
for url in urls:
func = getFunc(url, links)
funcs.append(func)
...
def getFunc(url, links):
def func():
page = open(url)
link = searchForLink(page)
links.append(link)
return func
Run Code Online (Sandbox Code Playgroud)
进入更方便的代码:
urls = [many urls]
links = []
funcs = []
for url in urls:
<STATEMENT>(funcs):
page = open(url)
link = searchForLink(page)
links.append(link)
Run Code Online (Sandbox Code Playgroud)
我希望在with
声明中这样做.正如我评论的那样,我希望实现:
def __enter__():
def func():
..code in the for loop..
def __exit__():
funcs.append(func)
Run Code Online (Sandbox Code Playgroud)
当然这不起作用.
如果动作searchForLink
不仅仅是一个功能而是许多功能,那么列表理解对于案例并不好.它将变成一个非常难以理解的代码.例如,即使这对列表推导也有问题:
for url …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
funcs = []
for i in range(10):
def func():
print i
funcs.append(func)
for f in funcs:
f()
Run Code Online (Sandbox Code Playgroud)
问题是func
正在被覆盖.即代码的输出是:
9
9
9
...
Run Code Online (Sandbox Code Playgroud)
如果不定义新功能,您将如何解决这个问题?
最佳解决方案是更改函数的名称.即:
for i in range(10):
def func+i():
...
Run Code Online (Sandbox Code Playgroud)
(或其他一些奇怪的语法)
我想编写一个打开多个屏幕并分离它们的bash脚本.所以最后你会打开几个屏幕,每个屏幕都运行不同的命令.
类似于ssh
:
ssh DESTINATION "command 1; command 2;"
Run Code Online (Sandbox Code Playgroud)
我的想法是写这样的东西:
screen -S name1 "command1"
screen -S name2 "command2"
...
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
想法?
有没有一种方法来定义像新语句def
,with
,for
,...我自己在Python的.当然,我并不是要覆盖现有的语句.只创建一些我自己的语句.
如果是这样,我该怎么办?你能指点我这个主题的好文档吗?