fix id selector (#573)
This commit is contained in:
@@ -630,14 +630,14 @@ async function getSelect2OptionElements(element) {
|
|||||||
while (true) {
|
while (true) {
|
||||||
oldOptionCount = optionList.length;
|
oldOptionCount = optionList.length;
|
||||||
let newOptionList = document.querySelectorAll(
|
let newOptionList = document.querySelectorAll(
|
||||||
"#select2-drop li[role='option']",
|
"[id='select2-drop'] li[role='option']",
|
||||||
);
|
);
|
||||||
if (newOptionList.length === oldOptionCount) {
|
if (newOptionList.length === oldOptionCount) {
|
||||||
console.log("no more options loaded, wait 5s to query again");
|
console.log("no more options loaded, wait 5s to query again");
|
||||||
// sometimes need more time to load the options, so sleep 10s and try again
|
// sometimes need more time to load the options, so sleep 10s and try again
|
||||||
await sleep(5000); // wait 5s
|
await sleep(5000); // wait 5s
|
||||||
newOptionList = document.querySelectorAll(
|
newOptionList = document.querySelectorAll(
|
||||||
"#select2-drop li[role='option']",
|
"[id='select2-drop'] li[role='option']",
|
||||||
);
|
);
|
||||||
console.log(newOptionList.length, " options found, after 5s");
|
console.log(newOptionList.length, " options found, after 5s");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -197,7 +197,7 @@ class SkyvernElement:
|
|||||||
if for_id == "":
|
if for_id == "":
|
||||||
return None
|
return None
|
||||||
|
|
||||||
locator = self.get_frame().locator(f"#{for_id}")
|
locator = self.get_frame().locator(f"[id='{for_id}']")
|
||||||
# supposed to be only one element, since id is unique in the whole DOM
|
# supposed to be only one element, since id is unique in the whole DOM
|
||||||
if await locator.count() != 1:
|
if await locator.count() != 1:
|
||||||
return None
|
return None
|
||||||
@@ -349,7 +349,7 @@ class Select2Dropdown(AbstractSelectDropdown):
|
|||||||
self.frame = frame
|
self.frame = frame
|
||||||
|
|
||||||
async def __find_anchor(self, timeout: float) -> Locator:
|
async def __find_anchor(self, timeout: float) -> Locator:
|
||||||
locator = self.frame.locator("#select2-drop")
|
locator = self.frame.locator("[id='select2-drop']")
|
||||||
await locator.wait_for(state="visible", timeout=timeout)
|
await locator.wait_for(state="visible", timeout=timeout)
|
||||||
cnt = await locator.count()
|
cnt = await locator.count()
|
||||||
if cnt == 0:
|
if cnt == 0:
|
||||||
@@ -415,7 +415,7 @@ class ComboboxDropdown(AbstractSelectDropdown):
|
|||||||
|
|
||||||
async def __find_anchor(self, timeout: float) -> Locator:
|
async def __find_anchor(self, timeout: float) -> Locator:
|
||||||
control_id = await self.skyvern_element.get_attr("aria-controls", timeout=timeout)
|
control_id = await self.skyvern_element.get_attr("aria-controls", timeout=timeout)
|
||||||
locator = self.frame.locator(f"#{control_id}")
|
locator = self.frame.locator(f"[id='{control_id}']")
|
||||||
await locator.wait_for(state="visible", timeout=timeout)
|
await locator.wait_for(state="visible", timeout=timeout)
|
||||||
cnt = await locator.count()
|
cnt = await locator.count()
|
||||||
if cnt == 0:
|
if cnt == 0:
|
||||||
|
|||||||
Reference in New Issue
Block a user