python selenium模块学习

来源:互联网 发布:tomcat 多域名绑定 编辑:程序博客网 时间:2024/06/05 20:29

最近心血来潮想学习selenium来为自己的BS课设加入自动化的操作,以下是我是我的开始学习之路。文中的大部分代码也是来自其他人,原创很少。如果侵权可联系我删除


首先初学是用selenium访问一个网页的代码‘

# coding:utf-8from selenium import webdriverimport timedriver = webdriver.Chrome()# 这里可以选用Firefox 或者edge之类的浏览器,但前提需要下载驱动driver.get("http://www.baidu.com")driver.set_window_size(1680,800)  # 设置窗口大小# driver.find_element_by_id("kw").send_keys("zsw")  #id查找driver.find_element_by_xpath('//*[@id="kw"]').send_keys("zsw")  # xpath查找driver.find_element_by_id("su").click()# 找到索搜按钮,按下搜索time.sleep(3)#为了观看效果,停了三秒钟driver.quit()   #退出
之后学习如何在浏览器中能够进行前进后退刷新操作,代码如下
from selenium import webdriverdriver = webdriver.Chrome()first_url = 'https://www.baidu.com/'print("now access %s" % first_url)driver.get(first_url)second_url = "http://www.163.com/"print("now access %s" % second_url)driver.get(second_url)print("back to %s" % first_url)driver.back()#后退print("forward to %s" % second_url)driver.forward()#前进driver.refresh()# 刷新页面print("刷新页面")driver.quit()
这是浏览器最简单的几个功能。然后就可以对一些网页进行操作了,比如进入有道进行翻译。但下面的代码我将click改成了submit用于对提交功能的学习
from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("http://www.youdao.com/")driver.find_element_by_id("translateContent").send_keys("hello")driver.find_element_by_id("translateContent").submit()time.sleep(4)driver.quit()
达到了翻译hello的作用
再后来学习了登陆邮箱大法,不过这个功能当时书上讲了,却要涉及到frame上的内容,因此书上代码有问题,后来经过一番查找资料,在贴吧看到了正确的解决方案,而且因为这个frame加载较慢,需要time.sleep(5),否则会产生找不到元素的错误,这些在后面的学习中都会改进,webdriver有他的等待函数,初学者可以用time里的sleep先代替。
# coidng utf-8from selenium import webdriverimport timedriver = webdriver.Chrome()driver.get("http://mail.126.com/")time.sleep(5)driver.switch_to.frame("x-URS-iframe")# driver.find_element_by_id("idInput").clear()driver.find_element_by_css_selector(".j-inputtext.dlemail").send_keys("yoyo")driver.find_element_by_css_selector(".j-inputtext.dlpwd").send_keys("123")driver.find_element_by_id("dologin").click()time.sleep(4)driver.quit()"""# coding:utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.get("http://mail.126.com/") driver.implicitly_wait(20) driver.switch_to.frame("x-URS-iframe") # 方法一:取单个class属性 driver.find_element_by_class_name("dlemail").send_keys("yoyo") driver.find_element_by_class_name("dlpwd").send_keys("12333") # 方法二:定位一组取下标定位(乃下策) driver.find_elements_by_class_name("j-inputtext")[0].send_keys("yoyo") driver.find_elements_by_class_name("j-inputtext")[1].send_keys("12333") # 方法三:css定位 driver.find_element_by_css_selector(".j-inputtext.dlemail").send_keys("yoyo") driver.find_element_by_css_selector(".j-inputtext.dlpwd").send_keys("123") # 方法四:取单个class属性也是可以的 driver.find_element_by_css_selector(".dlemail").send_keys("yoyo") driver.find_element_by_css_selector(".dlpwd").send_keys("123") # 方法五:直接包含空格的CSS属性定位大法 driver.find_element_by_css_selector("[class='j-inputtext dlemail']").send_keys("yoyo")"""
这些就是今天所学的,后面会将在书上学到的知识继续贴上来
原创粉丝点击