java - 使用 http 请求自动化与 selenium webdriver 之间有什么区别?

标签 java selenium httprequest

我是 selenium webdriver Java 的机器人开发人员,我使用的是 headless 浏览器 HtmlunitDriver,但当我必须处理 javascript 时它很复杂,那么,当我必须自动化页面时,哪个更好?发送 HTTP get 和 post 请求还是继续使用 webdriver?

我很困惑,因为,例如,我怎样才能点击一个按钮并等待页面加载(例如:当我打开一个像 Ad.fly 这样的页面时)并且我必须等待 5 秒直到按钮准备就绪发送http请求,这就是我困惑的地方,非常感谢你的回答!!

最佳答案

如果您只想进行调用(即调用 REST 服务),请使用 HTTP 请求。如果您需要模拟浏览器行为(即在页面中运行 javascript),请使用 selenium(或其他网络自动化工具)。 如果可以选择,HTTP 通常更可取 - 服务比页面结构更稳定(特别是如果有已发布的界面)并且通常设计为机器可读。网页是为使用网络浏览器的人设计的,因此它们可以经常更改,并增加了很多开销,这在机器界面中是没有意义的。

因此,我建议 - 查看您尝试自动化的用户操作序列。如果您可以将它们表示为一个简单的 HTTP 请求序列,我会这样做。如果您需要运行客户端 javascript,或使用其他浏览器功能,请使用 selenium。

关于java - 使用 http 请求自动化与 selenium webdriver 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31355126/

相关文章:

Java Tokenizer,分隔字符串

Java- Selenium : <html> containing <html> problematic

javascript - 将脚本从请求更改为 axios - 记录待处理的 promise

C# HttpRequest 和不同的编码

java - 按值复制而不是按引用复制 [JavaCV - 框架]

java - 在删除处理中处理临时实体。实体不被删除[解决]

selenium - 如何在 Robot Framework 中最大化 Headless Chrome 窗口?

swift - 具有多个参数的 HttpRequest swift

java - 将 Small talk 方法名称和签名转换为 Java 方法名称和签名

javascript - Protractor 在 Firefox 和 IE 浏览器中失败