最近心血来潮想学习selenium来为自己的BS课设加入自动化的操作,以下是我是我的开始学习之路。文中的大部分代码也是来自其他人,原创很少。如果侵权可联系我删除
首先初学是用selenium访问一个网页的代码‘
# coding:utf-8 from selenium import webdriver import time driver = 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 webdriver driver = 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 webdriver import time driver = 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-8 from selenium import webdriver import time driver = 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") """这些就是今天所学的,后面会将在书上学到的知识继续贴上来