Python Selenium 如何单击输入类型数字递增或递减按钮

问题描述 投票:0回答:2

使用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()
python-3.x selenium
2个回答
0
投票

您可以通过

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

0
投票

此处给出了示例机器人代码以实现您的目标:

*** 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
© www.soinside.com 2019 - 2024. All rights reserved.