通過運行的NodeJS Chromedriver - protractor
和selenium-webdriver
- 針對嵌入式鉻在Windows 10JavaScript webdriver-selenium mouseMove在鉻上不準確?
看來,使用getLocation
返回準確的位置,但是當我努力的webdriver將鼠標移動到那些位置,鼠標沒有按」到達那裏 - 除非我將職位乘以大約1.45。
當然,這不可能是正確的?
這是我多年來第一次使用Selenium,但我確信我之前沒有必要這麼做。
下面是代碼的縮寫,其中一些所述的webdriver日誌: 1.將鼠標移動到一個元素, 1.壓低鼠標按鈕, 1.等待一點對系統下的測試,以反應, 1.爲被測系統移動一點鼠標, 1.等一下, 1.移動到目標元素 1.鬆開鼠標按鈕。
該代碼起作用,前提是我什麼都不做,只能垂直移動。
如果我垂直移動,則看不到任何效果。
如果我在一個Chromium窗口中運行代碼兩次,在每次運行開始時加載測試文檔,第二次運行會掛起文檔加載。
var destLocation,
fromEl = $('elementA'),
destEl = $('elementB');
destEl.getLocation()
.then(() => {
browser.driver.actions()
.mouseMove(fromEl, {x: 10, y: 10})
// 09:56:37.222 INFO - Done: [mousemove: 5 true]
.mouseDown(fromEl, {x: 10, y: 10})
// 09:56:37.230 INFO - Done: [mousedown: no args]
.perform();
})
.then(() => {
browser.sleep(400);
})
.then(() => {
// Business logic requires this
browser.driver.actions().mouseMove(fromEl, {x:15, y:15})
// 09:56:37.719 INFO - Done: [mousemove: 5 true]
.mouseDown()
// 09:56:37.726 INFO - Done: [mousedown: no args]
.perform();
})
.then(() => {
browser.sleep(400);
})
.then(() => {
browser.driver.actions().mouseMove($('body'), destLocation).perform();
// 09:56:38.209 INFO - Done: [mousemove: 9 true]
})
.then(() => {
browser.sleep(200);
})
.then(() => {
browser.driver.actions().mouseUp().perform();
// 09:56:38.425 INFO - Done: [mouseup: nothing]
});
- 硒v2.52.0,擁有核心v2.52.0。從版本4c2593c內置
- 驅動程序信息:driver.version:RemoteWebDriver
- 操作系統:Windows 10 10.0 AMD64
- 的Java:甲骨文公司25.91〜B14
- chromedriver_2.21和chromedriver_2.15.322448似乎採取同樣的方式
- CEF 3.2454.1344.g2782fb8
- 鉻45.0.2454.101
- 的WebKit 537.36
- JavaScript的4.5.103.35