我有这段代码:
const elem = element(by.xpath(selector));
browser.getCurrentUrl();
browser.wait(() => elem.clear().getText().then(text => text === ''), timeout, `Waiting for element '${selector}' to be cleared timed out`);
工作正常。但是如果我删除了browser.getCurrentUrl(),它就会失败。
const elem = element(by.xpath(selector));
browser.wait(() => elem.clear().getText().then(text => text === ''), timeout, `Waiting for element '${selector}' to be cleared timed out`);
以下是错误的一部分:
- Failed: invalid element state: Element is not currently interactable and may not be manipulated
(Session info: chrome=60.0.3112.78)
(Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.4.0-98-generic x86_64)
(Session info: chrome=60.0.3112.78)
(Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.4.0-98-generic x86_64)
at WebDriverError (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:27:5)
at InvalidElementStateError (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:124:5)
at Object.checkLegacyResponse (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/http.js:441:30)
at process._tickCallback (internal/process/next_tick.js:109:7)
From: Task: WebElement.clear()
at Driver.schedule (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:807:17)
at WebElement.schedule_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2010:25)
at WebElement.clear (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:2351:17)
at actionFn (/usr/lib/node_modules/protractor/built/element.js:89:44)
at Array.map (native)
at actionResults.getWebElements.then (/usr/lib/node_modules/protractor/built/element.js:461:65)
at ManagedPromise.invokeCallback_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1376:14)
at TaskQueue.execute_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3084:14)
at TaskQueue.executeNext_ (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:3067:27)
at asyncRun (/usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2927:27)
at /usr/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:668:7
at process._tickCallback (internal/process/next_tick.js:109:7)Error
为什么我会这样做?
正确的方法是什么?如果我不需要,我不想要求当前的URL。我也想了解这个问题。
谢谢