使用Python Selenium,如何单击输入类型数字的递增或递减按钮。递增和递减按钮是浏览器特定的对象,而不是 DOM 的一部分。所以我无法使用检查器来获取xpath。 我想增加和减少这些输入。
HTML:
<input type="number" name="qty" value="69">
由于它们没有出现在 DOM 检查器中(对于任一浏览器),我不知道如何为这些按钮进行单击操作:
driver.find_element_by_xpath('/html/body/div[2]/main/form/div[1]/table/tbody/tr[1]/td[3]/input[1]').click()
您可以通过
removeAttribute()
删除现有属性,并使用 setAttribute()
设置新属性,如下所示:
counter = driver.find_elements(By.CSS_SELECTOR, "input[name='qty'][type='number']")
driver.execute_script("arguments[0].removeAttribute('value')", counter);
driver.execute_script("arguments[0].setAttribute('value','50')", counter)
一行:
driver.execute_script("arguments[0].setAttribute('value','50')", driver.find_elements(By.CSS_SELECTOR, "input[name='qty'][type='number']"))
注意:您必须添加以下导入:
from selenium.webdriver.common.by import By
此处给出了示例机器人代码以实现您的目标:
*** Settings ***
Library SeleniumLibrary
*** Variables ***
${FILTER_ID_LOC}= qty
*** Keywords ***
*** Test Cases ***
Scenario: User inputs values on filter
Open Browser http://127.0.0.1:5500/index.html Chrome
Click Element xpath://*[@name="${FILTER_ID_LOC}"]
Input Text xpath://*[@name="${FILTER_ID_LOC}"] 100
Sleep 3
Close Browser