Skip to content

Commit 29a239e

Browse files
authored
Add extra dropdown keywords (#82)
1 parent a4a5d29 commit 29a239e

File tree

4 files changed

+50
-1
lines changed

4 files changed

+50
-1
lines changed

PuppeteerLibrary/ikeywords/idropdown_async.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ async def select_from_list_by_label(self, locator, labels):
1616
async def get_selected_list_labels(self, locator: str) -> str:
1717
pass
1818

19+
@abstractmethod
20+
async def get_list_labels(self, locator: str) -> str:
21+
pass
22+
1923
@abstractmethod
2024
async def get_selected_list_values(self, locator: str) -> str:
21-
pass
25+
pass
26+
27+
@abstractmethod
28+
async def get_list_values(self, locator: str) -> str:
29+
pass

PuppeteerLibrary/keywords/dropdown.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ def get_selected_list_labels(self, locator):
3939
"""
4040
return self.loop.run_until_complete(self.get_async_keyword_group().get_selected_list_labels(locator))
4141

42+
@keyword
43+
def get_list_labels(self, locator):
44+
""" Return the label list of options from element.
45+
"""
46+
return self.loop.run_until_complete(self.get_async_keyword_group().get_list_labels(locator))
4247

4348
@keyword
4449
def get_selected_list_value(self, locator):
@@ -53,4 +58,9 @@ def get_selected_list_values(self, locator):
5358
"""
5459
return self.loop.run_until_complete(self.get_async_keyword_group().get_selected_list_values(locator))
5560

61+
@keyword
62+
def get_list_values(self, locator):
63+
""" Return the value list of options from element.
64+
"""
65+
return self.loop.run_until_complete(self.get_async_keyword_group().get_list_values(locator))
5666

PuppeteerLibrary/playwright/async_keywords/playwright_dropdown.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,26 @@ async def get_selected_list_labels(self, locator: str) -> str:
2727
selected_labels.append((await (await option.getProperty('textContent')).jsonValue()))
2828
return selected_labels
2929

30+
async def get_list_labels(self, locator: str) -> str:
31+
element = await self.library_ctx.get_current_page().querySelector_with_selenium_locator(locator)
32+
options = await element.querySelectorAll('option')
33+
selected_labels = []
34+
for option in options:
35+
selected_labels.append((await (await option.getProperty('textContent')).jsonValue()))
36+
return selected_labels
37+
3038
async def get_selected_list_values(self, locator: str) -> str:
3139
element = await self.library_ctx.get_current_page().querySelector_with_selenium_locator(locator)
3240
options = await element.querySelectorAll('option:checked')
3341
selected_labels = []
3442
for option in options:
3543
selected_labels.append((await (await option.getProperty('value')).jsonValue()))
3644
return selected_labels
45+
46+
async def get_list_values(self, locator: str) -> str:
47+
element = await self.library_ctx.get_current_page().querySelector_with_selenium_locator(locator)
48+
options = await element.querySelectorAll('option')
49+
selected_labels = []
50+
for option in options:
51+
selected_labels.append((await (await option.getProperty('value')).jsonValue()))
52+
return selected_labels

PuppeteerLibrary/puppeteer/async_keywords/puppeteer_dropdown.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@ async def get_selected_list_labels(self, locator: str) -> str:
3434
selected_labels.append((await (await option.getProperty('textContent')).jsonValue()))
3535
return selected_labels
3636

37+
async def get_list_labels(self, locator: str) -> str:
38+
element = await self.library_ctx.get_current_page().querySelector_with_selenium_locator(locator)
39+
options = await element.querySelectorAll('option')
40+
selected_labels = []
41+
for option in options:
42+
selected_labels.append((await (await option.getProperty('textContent')).jsonValue()))
43+
return selected_labels
44+
3745
async def get_selected_list_values(self, locator: str) -> str:
3846
element = await self.library_ctx.get_current_page().querySelector_with_selenium_locator(locator)
3947
options = await element.querySelectorAll('option:checked')
@@ -42,3 +50,10 @@ async def get_selected_list_values(self, locator: str) -> str:
4250
selected_labels.append((await (await option.getProperty('value')).jsonValue()))
4351
return selected_labels
4452

53+
async def get_list_values(self, locator: str) -> str:
54+
element = await self.library_ctx.get_current_page().querySelector_with_selenium_locator(locator)
55+
options = await element.querySelectorAll('option')
56+
selected_labels = []
57+
for option in options:
58+
selected_labels.append((await (await option.getProperty('value')).jsonValue()))
59+
return selected_labels

0 commit comments

Comments
 (0)