亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Playwright for Python,如何從下拉列表中選擇選項?

使用 Playwright for Python,如何從下拉列表中選擇選項?

慕妹3146593 2023-10-31 21:49:41
這是關于 Playwright for Python 基本功能的問題的后續內容。如何從下拉列表中選擇一個選項?此示例遠程控制一個 vuejs 網站,該網站具有“蘋果”、“香蕉”、“胡蘿卜”、“橙子”等水果的下拉列表這里我想選擇選項“香蕉”from playwright import sync_playwrightimport timeURL = '<my url>'with sync_playwright() as p:    browser = p.chromium.launch(headless=False)    page = browser.newPage()    page.goto(URL)    # identify this element by ID. Wait for it first    new_selector = 'id=name-fruit'    page.waitForSelector(new_selector)    handle = page.querySelector(new_selector)    # at this point I have the element and can print the content    print(handle.innerHTML())下拉列表 HTML 像這樣<select data-v-c2cef47a="" id="name-fruit" autocomplete="true" class="form-select__select">    <option data-v-c2cef47a="" disabled="disabled" value=""><!----></option>    <option data-v-c2cef47a="" value="[object Object]"> Apple </option>    <option data-v-c2cef47a="" value="[object Object]"> Banana </option>    <option data-v-c2cef47a="" value="[object Object]"> Carrot </option>    <option data-v-c2cef47a="" value="[object Object]"> Orange </option> </select>在 Selenium 中,我會選擇這樣的選項from selenium.webdriver.support.ui import SelectSelect(handle).select_by_visible_text('Banana')  # Note: no spaces needed!Playwright 的 Javascript 文檔有這個,這并不完全相同,因為它似乎同時識別了對象。// Single selection matching the labelawait page.selectOption('select#colors', { label: 'Blue' });如何在 Playwright for Python 中進行選擇?我嘗試了這兩種方法,但沒有任何反應。handle.selectOption("text=Banana") handle.selectOption("text= Banana ")
查看完整描述

5 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

在嘗試了許多不同的變體之后,我猜出了一個有效的語法

handle.selectOption({"label": "Banana"})


查看完整回答
反對 回復 2023-10-31
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

Playwright for Python 的一個工作示例:

page.select_option('select#colors',?label='Banana')

或者對于 JavaScript:

await?page.selectOption('select#colors',?{?label:?'Banana'?});


查看完整回答
反對 回復 2023-10-31
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

您還可以使用索引或值來選擇選項:


handle.selectOption([{'label': 'Banana'}])  # selects 'Banana'

handle.selectOption([{'index': 3}])         # selects 'Carrot'

handle.selectOption([{'value': ''}])        # selects the empty option (works even though it is disabled)



查看完整回答
反對 回復 2023-10-31
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

不需要句柄,直接使用頁面或者框架即可。

使用劇作家-python:

page.select_option('select#name-fruit', label='Banana')
page.select_option('select#name-fruit', value='')


查看完整回答
反對 回復 2023-10-31
?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

如果您必須根據“包含”選擇列表選項,這就是我使用的


基本上得到一個定位器來查找帶有文本的選項


獲取選項的全文


使用該全文來選擇選項


  dropdown_locator = page.locator(DROPDOWN_LOCATOR)

  dropdown_locator = dropdown_locator.filter(has_text="Banana")

  options_txt = activity_locator.text_content()

  options = options_txt.split('\n')

  print("Monkey searching banana in " + str(options))

  full_label = ""

  for item in options:

      if "Banana" in item:

          full_label = item.strip()

  print(full_label)


  if len(full_label) != 0:

      page.select_option(DROPDOWN_LOCATOR, label=full_label)


查看完整回答
反對 回復 2023-10-31
  • 5 回答
  • 0 關注
  • 332 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號