在Python中使用Selenium输入货币格式tex

2024-10-03 21:35:09 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试在Python中使用Selenium将值“100000”输入到web表单中,但是无论我如何发送它,它始终不起作用。你知道吗

很抱歉我对这个术语缺乏了解。我会尽力的,但我是自学成才的新手。另外,我很抱歉,但我不能告诉你的网站或我的雇主不会很高兴。你知道吗

网页上的方框会自动填充一个美元符号。我知道web表单中的框需要货币格式的整数。 当我查看网页上的html元素时,它给出了以下信息

<input type="number" step="1" name="moneying" size="35" id="moneying" 
class="moneying input currency error" value="" data-type="currency" data- 
mandopt="mand" required="" pattern="[\$]?[0-9]+[\.]?[0-9]*" min="500" 
onblur="validate(this);">

我试过:

  • 使用send_keys类只是简单的,没有任何变化
  • 在使用发送键之前单击该框
  • 在使用send\u键之前清除该框
  • 在页面上找到元素之前,请等待,然后执行以上所有操作
  • 使用发送密钥钥匙。NUMPAD你知道吗
  • 在数字开头加$
  • 在数字开头加\$
  • 使用Firefox驱动程序代替Chrome驱动程序
  • 输入值为100000.00和100000

我的代码的当前版本:

    from selenium import webdriver
    driver = webdriver.Chrome('location on my pc')
    try:
        driver.get(r"relevant web page")
        moneying_box_wait = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.ID,"moneying")))
        moneying_box = driver.find_element_by_id("moneying")
        moneying_box.click()
        moneying_box.clear()
        moneying_box.send_keys("100000")

我想在盒子里输入100000。盒子里什么也没有。你知道吗


Tags: boxsendwebid元素网页表单input
1条回答
网友
1楼 · 发布于 2024-10-03 21:35:09

如果要发送字符序列而不是presence_of_element_located,则需要使用element_to_be_clickable,并且可以使用以下任一解决方案:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.moneying.input.currency.error#moneying"))).send_keys("$1000.0")
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='moneying input currency error' and @id='moneying']"))).send_keys("$1000.0")
    
  • 注意:必须添加以下导入:

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

相关问题 更多 >