Class: ListComponentDriver<ItemT>
Defined in: packages/core/src/drivers/ListComponentDriver.ts:18
Base class for all component drivers. It provides the basic functionality to interact with the component
Extends​
Type Parameters​
ItemT​
ItemT extends ComponentDriver
Constructors​
Constructor​
new ListComponentDriver<
ItemT>(locator,interactor,option):ListComponentDriver<ItemT>
Defined in: packages/core/src/drivers/ListComponentDriver.ts:21
Parameters​
locator​
interactor​
option​
ListComponentDriverSpecificOption<ItemT>
Returns​
ListComponentDriver<ItemT>
Overrides​
Properties​
commutableOption​
readonlycommutableOption:IComponentDriverOption<{ }>
Defined in: packages/core/src/drivers/ComponentDriver.ts:37
Option passed to the constructor includes both universal options which can be shared across all component driver tree, and component specific options which are only applicable to the component.
Commutable option is the option that can be shared across all component driver tree.
Inherited from​
ComponentDriver.commutableOption
interactor​
readonlyinteractor:Interactor
Defined in: packages/core/src/drivers/ComponentDriver.ts:41
Inherited from​
Accessors​
driverName​
Get Signature​
get driverName():
string
Defined in: packages/core/src/drivers/ListComponentDriver.ts:103
Returns​
string
Overrides​
locator​
Get Signature​
get locator():
PartLocator
Defined in: packages/core/src/drivers/ComponentDriver.ts:90
Return the locator of the component
Returns​
Inherited from​
parts​
Get Signature​
get parts():
ScenePartDriver<T>
Defined in: packages/core/src/drivers/ComponentDriver.ts:83
Return driver instance of all the named parts
Returns​
Inherited from​
Methods​
click()​
click(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:156
Parameters​
option?​
Partial<ClickOption>
Returns​
Promise<void>
Inherited from​
enforcePartExistence()​
protectedenforcePartExistence(partName):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:99
Check the specified parts' existences, and throw MissingPartError if any of the part is found not existence. Existence is defined by the part's existence in the DOM regardless of its visibility on the screen
Parameters​
partName​
readonly never[]
Single or array of the names of the parts to be enforced
Returns​
Promise<void>
Inherited from​
ComponentDriver.enforcePartExistence
exists()​
exists():
Promise<boolean>
Defined in: packages/core/src/drivers/ComponentDriver.ts:152
Whether the component exists/attached to the DOM
Returns​
Promise<boolean>
true if the component is attached to the DOM, false otherwise
Inherited from​
focus()​
focus(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:192
Parameters​
option?​
Partial<FocusOption>
Returns​
Promise<void>
Inherited from​
getAttribute()​
getAttribute(
attributeName):Promise<Optional<string>>
Defined in: packages/core/src/drivers/ComponentDriver.ts:144
Parameters​
attributeName​
string
Returns​
Promise<Optional<string>>
Inherited from​
getItemByIndex()​
getItemByIndex<
ItemClass>(index,itemDriverClass?):Promise<ItemClass|null>
Defined in: packages/core/src/drivers/ListComponentDriver.ts:48
Get the item's driver instance at the given index
Type Parameters​
ItemClass​
ItemClass extends ComponentDriver<{ }> = ItemT
Parameters​
index​
number
itemDriverClass?​
ComponentDriverCtor<ItemClass>
Returns​
Promise<ItemClass | null>
The item's driver instance at the given index, if the index is out of range, return null
getItemByLabel()​
getItemByLabel<
ItemClass>(text,itemDriverClass?):Promise<ItemClass|null>
Defined in: packages/core/src/drivers/ListComponentDriver.ts:62
Get the item's driver instance by the given text
Type Parameters​
ItemClass​
ItemClass extends ComponentDriver<{ }> = ItemT
Parameters​
text​
string
itemDriverClass?​
ComponentDriverCtor<ItemClass>
Returns​
Promise<ItemClass | null>
The item's driver instance by the given text, if the text is not found, return null
getItemClass()​
protectedgetItemClass<ItemClass>(itemDriverClass?):ComponentDriverCtor<ItemClass>
Defined in: packages/core/src/drivers/ListComponentDriver.ts:36
Type Parameters​
ItemClass​
ItemClass extends ComponentDriver<{ }> = ItemT
Parameters​
itemDriverClass?​
ComponentDriverCtor<ItemClass>
Returns​
ComponentDriverCtor<ItemClass>
getItemCount()​
getItemCount():
Promise<number>
Defined in: packages/core/src/drivers/ListComponentDriver.ts:99
Get the number of items in the list. This is more efficient than calling getItems().length when you only need the count, as it does not instantiate driver instances for each item.
Returns​
Promise<number>
The number of items in the list
getItemLocator()​
protectedgetItemLocator():PartLocator
Defined in: packages/core/src/drivers/ListComponentDriver.ts:32
Returns​
getItems()​
getItems<
ItemClass>(itemDriverClass?):Promise<ItemClass[]>
Defined in: packages/core/src/drivers/ListComponentDriver.ts:82
Get all the items' driver instances in the list
Type Parameters​
ItemClass​
ItemClass extends ComponentDriver<{ }> = ItemT
Parameters​
itemDriverClass?​
ComponentDriverCtor<ItemClass>
Returns​
Promise<ItemClass[]>
getMissingPartNames()​
protectedgetMissingPartNames(partName):Promise<readonlynever[]>
Defined in: packages/core/src/drivers/ComponentDriver.ts:111
Get the names of parts not in the DOM
Parameters​
partName​
readonly never[]
Single or array of the names of the parts to be examined
Returns​
Promise<readonly never[]>
Inherited from​
ComponentDriver.getMissingPartNames
getText()​
getText():
Promise<Optional<string>>
Defined in: packages/core/src/drivers/ComponentDriver.ts:140
Get the combined text content of the component
Returns​
Promise<Optional<string>>
If the component exists and has content, it should return the text or otherwise undefined
Inherited from​
hover()​
hover(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:160
Parameters​
option?​
Partial<HoverOption>
Returns​
Promise<void>
Inherited from​
innerHTML()​
innerHTML():
Promise<string>
Defined in: packages/core/src/drivers/ComponentDriver.ts:242
Get the inner HTML of the component
Returns​
Promise<string>
The inner HTML of the component
Inherited from​
isVisible()​
isVisible():
Promise<boolean>
Defined in: packages/core/src/drivers/ComponentDriver.ts:204
Whether the component is visible. Visibility is defined
that the component does not have the CSS property display: none,
visibility: hidden, or opacity: 0. However this does not
check whether the component is within the viewport.
Returns​
Promise<boolean>
true if the component is visible, false otherwise
Inherited from​
mouseDown()​
mouseDown(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:168
Parameters​
option?​
Partial<MouseDownOption>
Returns​
Promise<void>
Inherited from​
mouseEnter()​
mouseEnter(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:184
Parameters​
option?​
Partial<MouseEnterOption>
Returns​
Promise<void>
Inherited from​
mouseLeave()​
mouseLeave(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:188
Parameters​
option?​
Partial<MouseLeaveOption>
Returns​
Promise<void>
Inherited from​
mouseMove()​
mouseMove(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:164
Parameters​
option?​
Partial<MouseMoveOption>
Returns​
Promise<void>
Inherited from​
mouseOut()​
mouseOut(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:180
Parameters​
option?​
Partial<MouseOutOption>
Returns​
Promise<void>
Inherited from​
mouseOver()​
mouseOver(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:176
Parameters​
option?​
Partial<HoverOption>
Returns​
Promise<void>
Inherited from​
mouseUp()​
mouseUp(
option?):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:172
Parameters​
option?​
Partial<MouseUpOption>
Returns​
Promise<void>
Inherited from​
overriddenParentLocator()​
overriddenParentLocator():
Optional<PartLocator>
Defined in: packages/core/src/drivers/ComponentDriver.ts:61
Usually this should be undefined as the component driver corresponds to a component nested inside the parent DOM, thus the driver's locator would automatically chain with its parent's locator.
When the component is rendered outside the parent's DOM, which usually happens when the component is a modal or popup, supply the PartLocator on how to locate the component with the component's own locator.
Caution of usage: this function is called before the construction of the driver, so it should not use any instance properties
Returns​
Inherited from​
ComponentDriver.overriddenParentLocator
overrideLocatorRelativePosition()​
overrideLocatorRelativePosition():
Optional<LocatorRelativePosition>
Defined in: packages/core/src/drivers/ComponentDriver.ts:76
Usually this should be undefined when the locator is defined by the ScenePart, thus it reflects the natural relative position of the component
However, in some implementation such as MUI v5 dialog, the actual dialog DOM is rendered outside the parent DOM, and the selector is "siblings", by defining this function, it allows the driver to have the knowledge of the actual relative position instead of offloading the knowledge to the consumer.
Caution of usage: this function is called before the construction of the driver, so it should not use any instance properties
Returns​
Optional<LocatorRelativePosition>
Inherited from​
ComponentDriver.overrideLocatorRelativePosition
runtimeCssSelector()​
runtimeCssSelector():
Promise<string>
Defined in: packages/core/src/drivers/ComponentDriver.ts:251
Get the runtime CSS selector of the component. This is useful for debugging and testing purposes.
Returns​
Promise<string>
The runtime CSS selector of the component
Inherited from​
ComponentDriver.runtimeCssSelector
waitUntil()​
waitUntil<
T>(option):Promise<T>
Defined in: packages/core/src/drivers/ComponentDriver.ts:234
Type Parameters​
T​
T
Parameters​
option​
Returns​
Promise<T>
Inherited from​
waitUntilComponentState()​
waitUntilComponentState(
option):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:230
Wait until the component is in the expected state such as the component's visibility or existence. If the component has not reached the expected state within the timeout, it will throw an error.
By default it waits until the component is attached to the DOM within 30 seconds.
Parameters​
option​
Partial<Readonly<WaitForOption>> = defaultWaitForOption
The option to configure the wait behavior
Returns​
Promise<void>
Inherited from​
ComponentDriver.waitUntilComponentState
waitUntilVisible()​
waitUntilVisible(
timeoutMs):Promise<void>
Defined in: packages/core/src/drivers/ComponentDriver.ts:212
Wait until the component is attached and becomes visible to the DOM.
Parameters​
timeoutMs​
number = 10000
The number of milliseconds to wait before timing out
Returns​
Promise<void>