相关疑难解决方法(0)

WebDriver点击()vs JavaScript点击()

故事:

在StackOverflow上,我看到用户报告他们无法通过selenium WebDriver"click"命令单击一个元素,并且可以通过执行脚本单击JavaScript来解决它.

Python中的示例:

element = driver.find_element_by_id("myid")
driver.execute_script("arguments[0].click();", element)
Run Code Online (Sandbox Code Playgroud)

WebDriverJS/Protractor中的示例:

var elm = $("#myid");
browser.executeScript("arguments[0].click();", elm.getWebElement());
Run Code Online (Sandbox Code Playgroud)

问题:

为什么在常规WebDriver点击时没有点击"通过JavaScript"?究竟是什么时候发生这种变通方法的缺点(如果有的话)?

我个人使用这种解决方法而没有完全理解为什么我必须这样做以及它可能导致什么问题.

javascript python selenium selenium-webdriver protractor

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

如何在Protractor/WebdriverJS中设置默认浏览器窗口大小

出于某种原因,当我在工作中运行我的测试时,浏览器被最大化,但是当我在家中运行它时,它只打开一个宽度约为50%的浏览器窗口.这会导致向下滚动等一些差异,所以我最好让它在运行测试的每台机器上打开一个相同大小的浏览器窗口.最好的方法是什么?(我已经找到了其他语言的一些答案,但还没能使它们适应javascript)

添加

browser.executeScript('window.moveTo(0,0);'+
    'window.resizeTo(screen.width, screen.height);');
Run Code Online (Sandbox Code Playgroud)

什么都不做,(显然window.moveTowindow.resizeTo没有铬支持).

javascript webdriver angularjs selenium-webdriver protractor

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

使量角器测试占据整个屏幕

我在网上看到了几个与此问题相关的问题(如何在Protractor/WebdriverJS中设置默认的浏览器窗口大小),但它们没有解决我的问题.

我有测试,我希望能够在笔记本电脑屏幕或蚂蚁大小的桌面屏幕上成功运行.我曾尝试过以下所有这些方法,但不成功.

这个问题是我必须硬编码宽度和高度.我想自动检测屏幕尺寸

browser.driver.manage().window().setSize(width, height);
Run Code Online (Sandbox Code Playgroud)

这个问题是它似乎只是最大化高度而不是宽度.

browser.driver.manage().window().maximize();
Run Code Online (Sandbox Code Playgroud)

我希望能够获得屏幕的高度和宽度,并插入.setSize()函数.但是当我试着这个

browser.driver.manage().window().setSize(screen.width, screen.height);
Run Code Online (Sandbox Code Playgroud)

我明白了 ReferenceError: screen is not defined

如果我尝试,console.log($(window));那么窗口也没有定义

那么最好的方法是什么?

window functional-testing angularjs protractor

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