我的问题是,我必须在一个小屏幕上用Codeception测试一个页面,这样就从页面中隐藏了一些元素(设计是响应式的),所以Codeception不会检测到它们。
所以我试着用Codeception缩小范围,我已经尝试过了:
$I->executeJS("$('body').css('zoom','90%');");但只能部分起作用,因为页面不能识别缩放变化(如果我使用‘Ctrl+-’就能起作用)。因此,我也尝试过:
$I->pressKey('body', array(WebDriverKeys::CONTROL, WebDriverKeys::SUBTRACT));和
$I->executeInSelenium(
function(Facebook\WebDriver\Remote\RemoteWebDriver $webdriver){
$webdriver->findElement(WebDriverBy::tagName("body"))->sendKeys(WebDriverKeys::CONTROL, WebDriverKeys::SUBTRACT);
}
);以及它的一些变种,但什么都没发生...
我还找到了这个页面:Selenium Zoom-in/Zoom-out,但我不知道如何将这些代码与Codeception一起使用。
如果有一种方法可以将chromedriver配置为使用特定的缩放级别,这也将解决我的问题,但缩放功能会更有用。
有什么建议吗?提前感谢!
发布于 2016-08-17 17:58:13
这对我来说很好:
$I->executeJS("$(body).setStyle({zoom: '90%'});");发布于 2016-11-09 00:37:27
这适用于Firefox:
$I->executeJS("document.body.style.transform = 'scale(0.8)';");(缩小到原始内容的80% )
https://stackoverflow.com/questions/37992269
复制相似问题