Получение ошибки: «TypeError: rect is undefined» при попытке переместить ползунок начальной загрузки в Selenium WebDriver-Java - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь переместить ползунок начальной загрузки по горизонтали через Selenium WebDriver, и попробовал несколько разных подходов, но я продолжаю получать ошибку «TypeError: rect is undefined». Я испробовал несколько подходов, включая методы click и hold, а также переход к элементам и методы перетаскивания с классом Actions, однако я продолжаю получать сообщение об ошибке. Вот мой код для перемещения ползунка:

WebElement slider = driver.findElement(By.xpath("//input[@name='rating']"));
Actions moveSlider = new Actions(driver);
int width = slider.getSize().getWidth();
moveSlider.clickAndHold(slider).moveByOffset(((100*width)/100), 0).release().build().perform();

Это ошибка, которую я получаю:

Exception in thread "main" org.openqa.selenium.WebDriverException: TypeError: rect is undefined
Build info: version: '3.141.0', revision: '2ecb7d9a', time: '2018-10-31T20:22:52'
System info: host: 'localhost.localdomain', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-862.14.4.el7.x86_64', java.version: '1.8.0_181'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 60.2.1, javascriptEnabled: true, moz:accessibilityChecks: false, moz:geckodriverVersion: 0.23.0, moz:headless: false, moz:processID: 12969, moz:profile: /tmp/rust_mozprofile.GrOje9..., moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, platformVersion: 3.10.0-862.14.4.el7.x86_64, rotatable: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}}
Session ID: 235eebab-706e-4d55-9f4b-924e0cbfe035
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteWebDriver.perform(RemoteWebDriver.java:618)
at org.openqa.selenium.interactions.Actions$BuiltAction.perform(Actions.java:639)
at SeleniumTest.barRatingTest(SeleniumTest.java:131)
at SeleniumTest.issueTest(SeleniumTest.java:53)
at SeleniumTest.main(SeleniumTest.java:22)

Я также следовал нескольким подходам, пытаясь использовать WebRunnerWait, который сказал мне, что элемент никогда не станет активным, и пытался использовать JavascriptExecuter для выполнения действий, но это также не сработало.

Любая помощь очень ценится!

...