簡體   English   中英

如何使用 Selenium Python 將鍵發送到 type = number 的元素?

[英]How to send keys to an element with type = number using Selenium Python?

我正在嘗試將數字發送到僅采用數字值的元素(文本框)。 這個元素如下:

目前,我有這段代碼(本段下的代碼)將數字輸入到元素中。 誰能告訴我為什么號碼不顯示? 任何幫助,將不勝感激。

bpm = 121
inputBpm = driver.find_element(By.XPATH, "/html/body/mp-root/div/ ... /div[3]/div/input")
inputBpm.clear()
inputBpm.send_keys(str(bpm))

編輯:這是我要輸入的內容的視覺效果(清除后) 文本框

這是周圍的元素:

<div _ngcontent-soo-c572="" class="track-bpm">
<label _ngcontent-soo-c572="" class="input-title">BPM</label>
<span _ngcontent-soo-c572="" class="input-title-info">(Beats per minute)</span>
<div _ngcontent-soo-c572="" class="input-text">
<input _ngcontent-soo-c572="" type="number" name="bpm" placeholder="0" min="0" max="999" step="0.01" class="ng-pristine ng-valid ng-touched"></div>
</div>

你可以簡單地做,

if inputBpm.get_attribute("type")  == "number":
    inputBpm.clear()
    inputBpm.send_keys(str(bpm))

或者您可以使用 XPATH 找到type = number的輸入標簽。

input_tag = driver.find_element(By.XPATH, "//input[contains(@type, 'number')]")
inputBpm.clear()
input_tag.send_keys("9023")

<input>元素具有屬性type="number"min="0"max="999"

<input _ngcontent-pxo-c572="" type="number" name="bpm" placeholder="0" min="0" max="999" step="0.01" class="ng-valid ng-touched ng-dirty">

解決方案

要將字符序列發送到您需要為element_to_be_clickable()引入WebDriverWait的元素,您可以使用以下任一定位器策略

  • 使用CSS_SELECTOR

     bpm = 121 my_element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.ng-valid.ng-touched.ng-dirty[name='bpm']"))) my_element.click() my_element.clear() my_element.send_keys(str(bpm))
  • 使用XPATH

     bpm = 121 my_element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='ng-valid ng-touched ng-dirty' and @name='bpm']"))) my_element.click() my_element.clear() my_element.send_keys(str(bpm))
  • 注意:您必須添加以下導入:

     from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM