找不到硒元素(python)

2024-04-19 06:46:33 发布

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

尝试使用selenium向textbox发送键,但即使使用显式等待,它似乎也找不到元素。你知道吗

注意:我刚开始学习python,所以这里可能遗漏了一些重要的东西。你知道吗

Selenium能够在该页面之前找到站点上的所有元素(不确定它是否是新页面,因为URL不会更改,但页面中的模块会更改)。我尝试了所有可能的元素定位方法(XPATH、ID、CLASS\u NAME等),但似乎找不到这个textbox元素。我试着用它来定位页面上的其他元素,但似乎也找不到它们。你知道吗

#My code:
#imported expected_conditions as EC
wait = WebDriverWait(browser, 15)
wait.until(EC.presence_of_element_located((By.XPATH, '// 
[@id="payment_amount_value"]')))

#Element:
  <input type="text" class="input-mini text_input span10" 
   id="payment_amount_value" aria-describedby="payment-amount-error- 
   message" data-submit="paymentAmount">

    #Error Message:
    Traceback (most recent call last):
      File "<string>", line 100, in <module>
      File "/anaconda3/lib/python3.6/site- 
   packages/selenium/webdriver/support/wait.py", line 80, in until
        raise TimeoutException(message, screen, stacktrace)
    selenium.common.exceptions.TimeoutException: Message: 

Tags: text定位id元素inputvalueselenium页面
2条回答

谢谢你的帮助,摩西!原来元素在iframe中,我必须使用以下方法切换到它:

iframe = wait.until(EC.presence_of_element_located((By.XPATH,'//*[@id="billing-app-container"]/iframe')))
browser.switch_to.frame(iframe)

更改xpath:

wait = WebDriverWait(browser, 15)
the_input = wait.until(EC.presence_of_element_located((By.XPATH, '//input[@id="payment_amount_value"]')))
the_input.send_keys("Bla-bla")

希望这对你有帮助!你知道吗

相关问题 更多 >