ich auf meiner Seite mit einem id ein Element, dh <p id="blabla">The Text</p>
Protractor interactive (elementExplorer) zeigt Ergebnis unabhängig davon, ob Element
Als ich Winkelmesser des elementExplorer laufen, dh protractor ./config/protractor-conf.js --elementExplorer http://localhost:9001
, und ich tippe element(by.id('blabla'))
bekomme ich ein Element Ergebnis (kopiert unten).
Allerdings erkannte ich, dass, wenn ich eine dumme ID (d. H. foo
) geben, bekomme ich scheinbar das gleiche Ergebnis. Ich habe erwartet, einen Fehler oder eine Nachricht "nicht gefunden" zu erhalten. Wie kann ich feststellen, ob das Element tatsächlich existiert oder nicht?
Das Ergebnis jederelement(by.id())
Aufruf:
> element(by.id('foo'))
ElementFinder {
ptor_:
Protractor {
getProcessedConfig: [Function],
forkNewDriverInstance: [Function],
restart: [Function],
controlFlow: [Function],
schedule: [Function],
setFileDetector: [Function],
getSession: [Function],
getCapabilities: [Function],
quit: [Function],
actions: [Function],
touchActions: [Function],
executeScript: [Function],
executeAsyncScript: [Function],
call: [Function],
wait: [Function],
sleep: [Function],
getWindowHandle: [Function],
getAllWindowHandles: [Function],
getPageSource: [Function],
close: [Function],
getCurrentUrl: [Function],
getTitle: [Function],
findElementInternal_: [Function],
findElementsInternal_: [Function],
takeScreenshot: [Function],
manage: [Function],
switchTo: [Function],
driver:
WebDriver {
session_: [Object],
executor_: [Object],
flow_: [Object],
fileDetector_: null },
element: { [Function] all: [Function] },
'$': [Function],
'$$': [Function],
baseUrl: 'http://localhost:9001',
rootEl: 'body',
ignoreSynchronization: false,
getPageTimeout: 10000,
params: {},
ready:
Promise {
flow_: [Object],
stack_: null,
parent_: null,
callbacks_: null,
state_: 'fulfilled',
handled_: true,
value_: null,
queue_: null },
plugins_:
Plugins {
setup: [Function],
teardown: [Function],
postResults: [Function],
postTest: [Function],
onPageLoad: [Function],
onPageStable: [Function],
waitForPromise: [Function],
waitForCondition: [Function],
pluginObjs: [],
assertions: {},
resultsReported: false },
resetUrl: 'data:text/html,<html></html>',
trackOutstandingTimeouts_: true,
mockModules_: [ [Object] ],
allScriptsTimeout: 11000,
dbgCodeExecutor_:
{ execPromise_: [Object],
execPromiseResult_: undefined,
execPromiseError_: undefined,
replServer_: [Object],
execute_: [Function],
execute: [Function],
complete: [Function],
resultReady: [Function],
getResult: [Function] } },
then: null,
parentElementArrayFinder:
ElementArrayFinder {
ptor_:
Protractor {
getProcessedConfig: [Function],
forkNewDriverInstance: [Function],
restart: [Function],
controlFlow: [Function],
schedule: [Function],
setFileDetector: [Function],
getSession: [Function],
getCapabilities: [Function],
quit: [Function],
actions: [Function],
touchActions: [Function],
executeScript: [Function],
executeAsyncScript: [Function],
call: [Function],
wait: [Function],
sleep: [Function],
getWindowHandle: [Function],
getAllWindowHandles: [Function],
getPageSource: [Function],
close: [Function],
getCurrentUrl: [Function],
getTitle: [Function],
findElementInternal_: [Function],
findElementsInternal_: [Function],
takeScreenshot: [Function],
manage: [Function],
switchTo: [Function],
driver: [Object],
element: [Object],
'$': [Function],
'$$': [Function],
baseUrl: 'http://localhost:9001',
rootEl: 'body',
ignoreSynchronization: false,
getPageTimeout: 10000,
params: {},
ready: [Object],
plugins_: [Object],
resetUrl: 'data:text/html,<html></html>',
trackOutstandingTimeouts_: true,
mockModules_: [Object],
allScriptsTimeout: 11000,
dbgCodeExecutor_: [Object] },
locator_:
name(name) {
return By.css('*[name="' + escapeCss(name) + '"]');
} { using: 'css selector', value: '*[id="blabla"]' },
actionResults_: null,
getWebElements: [Function],
click: [Function],
sendKeys: [Function],
getTagName: [Function],
getCssValue: [Function],
getAttribute: [Function],
getText: [Function],
getSize: [Function],
getLocation: [Function],
isEnabled: [Function],
isSelected: [Function],
submit: [Function],
clear: [Function],
isDisplayed: [Function],
getOuterHtml: [Function],
getInnerHtml: [Function],
getId: [Function],
getRawId: [Function],
serialize: [Function],
takeScreenshot: [Function] },
elementArrayFinder_:
ElementArrayFinder {
ptor_:
Protractor {
getProcessedConfig: [Function],
forkNewDriverInstance: [Function],
restart: [Function],
controlFlow: [Function],
schedule: [Function],
setFileDetector: [Function],
getSession: [Function],
getCapabilities: [Function],
quit: [Function],
actions: [Function],
touchActions: [Function],
executeScript: [Function],
executeAsyncScript: [Function],
call: [Function],
wait: [Function],
sleep: [Function],
getWindowHandle: [Function],
getAllWindowHandles: [Function],
getPageSource: [Function],
close: [Function],
getCurrentUrl: [Function],
getTitle: [Function],
findElementInternal_: [Function],
findElementsInternal_: [Function],
takeScreenshot: [Function],
manage: [Function],
switchTo: [Function],
driver: [Object],
element: [Object],
'$': [Function],
'$$': [Function],
baseUrl: 'http://localhost:9001',
rootEl: 'body',
ignoreSynchronization: false,
getPageTimeout: 10000,
params: {},
ready: [Object],
plugins_: [Object],
resetUrl: 'data:text/html,<html></html>',
trackOutstandingTimeouts_: true,
mockModules_: [Object],
allScriptsTimeout: 11000,
dbgCodeExecutor_: [Object] },
locator_:
name(name) {
return By.css('*[name="' + escapeCss(name) + '"]');
} { using: 'css selector', value: '*[id="blabla"]' },
actionResults_: null,
getWebElements: [Function],
click: [Function],
sendKeys: [Function],
getTagName: [Function],
getCssValue: [Function],
getAttribute: [Function],
getText: [Function],
getSize: [Function],
getLocation: [Function],
isEnabled: [Function],
isSelected: [Function],
submit: [Function],
clear: [Function],
isDisplayed: [Function],
getOuterHtml: [Function],
getInnerHtml: [Function],
getId: [Function],
getRawId: [Function],
serialize: [Function],
takeScreenshot: [Function] },
click: [Function],
sendKeys: [Function],
getTagName: [Function],
getCssValue: [Function],
getAttribute: [Function],
getText: [Function],
getSize: [Function],
getLocation: [Function],
isEnabled: [Function],
isSelected: [Function],
submit: [Function],
clear: [Function],
isDisplayed: [Function],
getOuterHtml: [Function],
getInnerHtml: [Function],
getId: [Function],
getRawId: [Function],
serialize: [Function],
takeScreenshot: [Function] }
Lassen Sie mich die Referenz in den Dokumenten auch finden, geben Sie mir etwas Zeit. – alecxe
Vielen Dank für die Aufklärung! – CodyBugstein
@CodyBugstein Sie sind willkommen, fügte das Zitat und den Link zu den Dokumenten hinzu. Ich hoffe, das hilft. – alecxe