Selenium无法按ID选择元素

时间:2016-07-22 20:14:55

标签: python selenium

以下是元素的HTML代码:

<input maxlength="64" name="pskSecret" class="text" id="pskSecret" value="" size="32" type="text">

这是我的python代码,它试图选择它:

self.driver.find_element_by_id("pskSecret").clear()
self.driver.find_element_by_id("pskSecret").send_keys(data) # data is variable

但是我得到了例外,说明硒无法找到该元素。 可能导致问题的任何想法

编辑:该元素也在iframe中,但是我正在访问其中正常工作的其他元素。

1 个答案:

答案 0 :(得分:0)

可能在您要查找元素时,由于时序问题,无法在DOM上加载。您应该尝试使用WebDriverWait等待元素可见,如下所示: -

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



wait = WebDriverWait(self.driver, 10)

input = wait.until(EC.visibility_of_element_located((By.ID, "pskSecret")))
input.clear()
input.send_keys(data)

注意: - 如果此元素位于任何框架内,则需要在使用self.driver.switch_to_frame("your frame id or name")找到元素之前切换该框架