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

标签 python python-2.7 selenium selenium-webdriver selenium-chromedriver

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")

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

最佳答案

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

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

尝试与其元素交互之前。

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

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")

关于python - 即使 x 路径正确,Selenium Python 脚本也不会抛出任何元素错误异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38551400/

相关文章:

sorting - 对具有负值和正值的整数和 float 列表进行排序?

java - Selenium WebDriver + java .通过类名定位

python - 单击等待上传下载的不可点击按钮来下载 Selenium python

python - Python 的原子编辑器缩进错误

Python 数学 sin/cos 编码问题

python - Pytest 在顶部导入与在函数内导入

python - 大数据集上的部分字符串匹配

python - 将 KNN 火车从 Opencv 3 转换为 2

python - 如何循环遍历此 Python 字典并搜索是否存在值

java - Cucumber 特征文件不识别步骤