即使x路径正确,Selenium Python脚本也不会抛出任何元素错误异常?

即使x路径正确,Selenium Python脚本也不会抛出任何元素错误异常?,python,python-2.7,selenium,selenium-webdriver,selenium-chromedriver,Python,Python 2.7,Selenium,Selenium Webdriver,Selenium Chromedriver,在上面的代码中,我已经使用FireBug验证了xpath,它突出显示了正确的元素。但是当脚本运行失败时?各位,您能帮助我吗?您应该尝试使用WebDriverWait等待,直到页面上显示input元素,如下所示:- from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from seleniu

在上面的代码中,我已经使用FireBug验证了xpath,它突出显示了正确的元素。但是当脚本运行失败时?各位,您能帮助我吗?

您应该尝试使用
WebDriverWait
等待,直到页面上显示
input
元素,如下所示:-

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
driver=webdriver.Chrome()
driver.get("https://paytm.com/")
driver.maximize_window()
driver.find_element_by_class_name("login").click()
driver.implicitly_wait(10)
driver.find_element_by_xpath("//md-input-container[@class='md-default-theme md-input-invalid']/input[@id='input_0']").send_keys("99991221212")

希望对您有所帮助……:)

在selenium中,每一帧都是单独处理的。由于登录名位于单独的
iframe
元素中,因此需要首先使用以下命令切换到该元素:

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

driver = webdriver.Chrome()
driver.get("https://paytm.com/")
driver.maximize_window()

wait = WebDriverWait(driver, 10)

wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "login"))).click()

#now switch to iframe first      
wait.until(EC.frame_to_be_available_and_switch_to_it((By.TAG_NAME, "iframe")))

input = wait.until(EC.visibility_of_element_located((By.ID, "input_0")))
input.send_keys("99991221212")
尝试与其元素交互之前

或者在这种情况下,您将等待帧的存在,它将是:

iframe = driver.find_elements_by_tag_name('iframe')[0]
driver.switch_to_frame(iframe) 

@Subbu当我看到输入元素位于
iframe
中时,您是否尝试使用
XPath
id
?@Subbu。在查找输入元素之前,您需要切换该帧。。请参阅更新的答案。。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://paytm.com/")
driver.maximize_window()

wait = WebDriverWait(driver, 10)

wait.until(EC.visibility_of_element_located((By.CLASS_NAME, "login"))).click()
wait.until(EC.frame_to_be_available_and_switch_to_it((By.TAG_NAME, "iframe")))

_input = wait.until(EC.visibility_of_element_located((By.ID,"input_0")))
_input.send_keys("99991221212")