如果您将ChromeDriver与Chrome(通过Chromedriver)一起使用,则可能需要模拟移动视口特性.同样,您可能希望在桌面上自动执行测试,而无需在Android设置上使用正确的Chrome.
你是怎样做的?
我想模拟使用的移动浏览器Node.js,这意味着所有移动浏览器功能都应该在JavaScript侧面(在客户端上)可用,即使它们被模拟.
网页应该认为它们是在移动环境中加载的.例如,如果我们有一个网页说:
if ('ontouchstart' in window) {
document.body.innerHTML = "Mobile";
} else {
document.body.innerHTML = "Not mobile";
}
Run Code Online (Sandbox Code Playgroud)
...然后当在模拟中加载页面时,正文内容应该是Mobile.
这样做的正确方法是什么?我会避免简单地使用PhantomJS(或任何类似的东西)并执行一个脚本来执行:
window.ontouchstart = function () {};
Run Code Online (Sandbox Code Playgroud)
我正在考虑使用JSDom,但它看起来没有简单的方法来说明mobile:true哪些会添加所有这些属性.
什么是创建浏览器的最佳方式,这些浏览器会API暴露这些,模拟移动浏览器?
从Node.js方面,我想与浏览器仿真进行通信,并获得一些结果.假设我们有一个index.html这样的页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<script>
if ('ontouchstart' in window && window.orientation) {
document.body.innerHTML = "Mobile";
} else {
document.body.innerHTML = "Not mobile";
}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
使用 …