小编Guy*_*Guy的帖子

HtmlUnit的稳定性和快速性

我正在从selenium-1升级到selenium-2并试用新的HtmlUnit驱动程序.我已经尝试了一些基本的测试(打开一个页面,get_text,..)似乎

  1. 非常慢(我认为chrome/FF远程驱动程序比它快)
  2. 非常不稳定(使用HTMLUNIT和HTMLUNITWITHJS打开yahoo.com都会导致错误)

我很高兴听到你对它的印象.我希望你会发现我错了(我可以没有(1)速度但(2)稳定性至关重要)?是否有HtmlUnit与selenium驱动程序的速度比较?

selenium webdriver selenium-rc htmlunit selenium-webdriver

7
推荐指数
1
解决办法
6111
查看次数

gmail如何在幕后工作

出于好奇,我想知道gmail是如何做到的.在查看页面的源代码后,您没有看到任何链接,onclick方法和javascript.我知道他们隐藏了javascript,但页面仍然知道有点击.是否有运行守护程序线程来监听您的点击?它是如何工作的??

gmail

6
推荐指数
1
解决办法
6020
查看次数

xpath:有没有办法在xpath中获取所有子文本

我在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标签是干扰的.你是如何解决这个问题的?

谢谢

xpath

6
推荐指数
1
解决办法
1万
查看次数

javascript:如何检查元素是否可点击

我的幼稚方法如下:

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)

有什么我可以做的更好的吗?

javascript clickable

6
推荐指数
1
解决办法
4168
查看次数

使用ssh在linux上安装java

我想使用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脚本中使用它?

非常感谢

linux ssh bash rpm expect

5
推荐指数
1
解决办法
2055
查看次数

java矢量和线程安全

我想知道这段代码是否会有任何问题:

我有一个在许多线程之间共享的向量.每次线程必须从向量中添加/删除东西时,我都会在synchronized块下进行.但是,主线程有一个调用:

System.out.println("the vector's size: "+ vec.size());
Run Code Online (Sandbox Code Playgroud)

不是synchronized.

这会引起麻烦吗?

java multithreading vector thread-safety

4
推荐指数
2
解决办法
2万
查看次数

Python:使用"with"动态定义新函数

我想转换以下代码:

...
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)

python with-statement

4
推荐指数
1
解决办法
848
查看次数

Python:动态定义函数

我有以下代码:

 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)

(或其他一些奇怪的语法)

python lambda

4
推荐指数
1
解决办法
2076
查看次数

用屏幕编写bash脚本

我想编写一个打开多个屏幕并分离它们的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)

但这不起作用.

想法?

bash gnu-screen

3
推荐指数
1
解决办法
3624
查看次数

Python:制作自己的陈述

有没有一种方法来定义像新语句def,with,for,...我自己在Python的.当然,我并不是要覆盖现有的语句.只创建一些我自己的语句.

如果是这样,我该怎么办?你能指点我这个主题的好文档吗?

python

2
推荐指数
1
解决办法
915
查看次数