selenium python登录126邮箱错误记录

1.准备做一个登录126邮箱的操作,用Firefox的firebug查看了下用户名框的id , 密码框的id都是id="auto-id-1491067388576"

这样一类,F5刷新浏览器,重新看了下用户名框,密码框的id都是变化的,所以不能使用webdriver.get_element_by_id()定位,就用了webdriver.get_element_by_class_name(),代码如下


from selenium import webdriver

driver = webdriver.Firefox()


driver.get("http://www.126.com")

driver.find_element_by_class_name("j-inputtext dlemail'").clear()


driver.find_element_by_class_name("j-inputtext dlemail").send_keys("username")


driver.find_element_by_class_name("j-inputtext dlpwd").clear()


driver.find_element_by_class_name("j-inputtext dlpwd").send_keys("password")


driver.find_element_by_id("dologin").click()

driver.quit()


2.一运行就报错,error occurred: InvalidSelectorError: Compound class names not permitted 复合类名称不允许,className的参数只能是一个class,不能使复合类名(即多个class用空格分隔)。

3.将上面代码改为xpath定位:driver.find_element_by_xpath("//input[@class='j-inputtext dlemail']"), driver.find_element_by_xpath("//input[@class='j-inputtext dlpwd']"),运行还是报selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":"//input[@class='j-inputtext dlemail']"}


4.重新查看了下126.com主页,登录处于一个框架iframe中,要在
driver.get("http://www.126.com")后 加一段
driver.switch_to.frame("x-URS-iframe"),才能正常定位


参考链接1:http://www.cnblogs.com/sylvia-liu/p/4469084.html 

参考链接2:http://www.cnblogs.com/zhengyihan1216/p/6095543.html

你可能感兴趣的:(selenium软件测试)