硒与Python脚本
问题描述:
我是新来的与python硒。尝试了这个示例测试脚本。硒与Python脚本
from selenium import webdriver
def browser():
driver= webdriver.Firefox()
driver.delete_all_cookies()
driver.get('http://www.gmail.com/')
driver.maximize_window()
driver.save_screenshot('D:\Python Programs\Screen shots\TC_01.png')
driver.find_element_by_xpath("//*[@id='next']").click()
message=driver.find_element_by_xpath("//*[@id='errormsg_0_Email']")
driver.save_screenshot('D:\Python Programs\Screen shots\TC_03.png')
name= driver.find_element_by_xpath("//*[@id='Email']").send_keys('gmail')
driver.save_screenshot('D:\Python Programs\Screen shots\TC_02.png')
print name
driver.find_element_by_xpath("//*[@id='next']").click()
password=driver.find_element_by_xpath("//*[@id='Passwd']").send_keys('password')
driver.save_screenshot('D:\Python Programs\Screen shots\TC_03.png')
print password
driver.find_element_by_xpath("//*[@id='signIn']").click()
driver.implicitly_wait(10)
driver.quit()
i=browser()
直到下面的步骤后脚本运行我正在错误的
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":"//*[@id='Passwd']"}
Stacktrace:.
答
你应该点击密码按钮之前,因为它出现的延迟之后添加等待
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//*[@id='Passwd']"))
)
更好的是,您应该在脚本开始时为您的驱动程序配置implicit wait,而不是在末尾。
driver = webdriver.Firefox()
driver.implicitly_wait(10)
您好我已经使用虚拟mailid和密码作为example.So请不要证明与that.Because的答案,你会得到错误与邮件ID和密码 – Subbu
放在该行断点并运行该脚本。转到(现在打开的)浏览器,在页面内右键单击并选择“查看源代码”(或类似的东西)。搜索“Passwd”,如果你找到它,那么将整行复制粘贴到你的问题中。如果你没有找到它,那么你的脚本不工作的原因很明显。 –
你的函数没有返回值,所以我的值永远是None。如果您想要返回浏览器,请在函数末尾添加返回驱动程序行,并且在函数结束之前不要退出浏览器。 – hilcharge