因为Selenium可以遍历javascript网站(而Mechanize不能),而且Mechanize可以发布帖子请求(Selenium不能),在某些情况下,将两者结合使用会很有用。
+ Zarkonnen对this question的回答表明,最初会使用Selenium,然后Mechanize会介入发出请求,然后将其传回Selenium。
如何将Mechanize post方法集成到Selenium中?
我正在使用这些库的Ruby版本,但任何信息都会有用。
编辑这是一个维恩图,希望澄清我正在寻找的功能。
在这种情况下,“Javascript网站”仅仅意味着一个网站,如果没有启用JavaScript,其功能将无法使用。意思是,我需要遍历一个网站才能访问该网站上的表格。一路上我碰到了没有启用javascript的按钮。然后,为了使表单按照我想要的方式工作,我必须做一个自定义帖子。在这种情况下,Selenium WebDriver和Mechanize都无法自行处理 - 他们需要彼此的帮助。你将如何做到这一点?您是否会使用Selenium然后让Mechanize步入以帮助您何时进行发布?你会用其他方法在Selenium中发帖吗?你会用Capybara宝石吗?我发现WebDrivers制作帖子有局限性,但我知道必须有解决方法。
答案 0 :(得分:1)
这个问题有点模糊,但Selenium(WebDriver)和一个好的非交互式HTTP库(如Mechanize)都是测试人员军械库中的关键元素。
一般来说,如果你需要在交互式场景中模拟一个人,那么你就无法击败WebDriver。但是,Web是基于HTTP构建的,Selenium所做的一切都是HTTP,所以你的场景交互性越小,模拟真实用户所需的越少,性能越重要,你应该对Mechanize的看法越多,甚至可能低级HTTP库。
正因为如此,虽然这两种技术在某种意义上是互补的,但我无法想到在连接中使用它们的所有好理由。但也许如下:
这些都是WebDriver 可用于所有内容的示例,但使用非交互式工具将更加轻松和高效。