不在以文字赘述了,直接上代码,代码中都已经做了注解。。。其余内容稍后更新
# encoding=utf-8
__author__ = 'Jonny'
__location__ = '西安'
__date__ = '2018-05-14'
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
import time
def main_test1():
#调用一个谷歌浏览器驱动,创建一个浏览器
driver = webdriver.Chrome()
#设置窗口在最大化
driver.maximize_window()
#自定义窗口大小
# driver.set_window_size(width=200,height=300)
#get方法可以传递网址参数,也可以传递本地文件路径
driver.get('http://www.baidu.com')
#返回网页的主题:(例如:百度一下,你就知道)
print(driver.title)
print('---------------------------------------')
input_element = driver.find_element_by_id('kw')
#同作用替换;
input_element = driver.find_element(By.ID,'kw')
#输入查询的关键词,并提交查询的命令,
input_element.send_keys('python')
input_element.submit()
#与楼上语句作用是相同的
driver.find_element_by_id('su').click()
try:
#个人理解:用于判断之前输入的要查询关键词,是否与查询到的网页相关
#c构造函数,接受一个WebDriver实例,并在几秒钟内超时。
# until:把驱动程序提供的方法称为参数,直到返回值不是假的。
# title_contains:期望检查标题包含一个区分大小写的子串。标题是标题期望返回的片段当标题匹配时,否则是假的
WebDriverWait(driver,100).until(EC.title_contains('python'))
print(driver.title)
finally:
time.sleep(20)
#退出,并关闭所有相关进程,注意和driver.close()的区别,这个是只关掉窗口,不关闭相关进程
driver.quit()
''''
find_element_by_xx方法可以定位单一元素,如果要定位一组元素需要用find_elements_by_xxx方法,(注意该方法返回值是一个列表对象)
定位一组对象一般用于以下场景:
批量操作对象,比如说将页面上所有的checkbox都勾上
先获取一组对象,在在这组对象中过滤除需要的具体需要定位的一些对象,比如说在上一条中定位出的所有CheckBox中定位某一个CheckBox。
'''
browser = webdriver.Chrome()
browser.maximize_window()
browser.get('https://blog.csdn.net/m0_37338590')
#通过标签属性查找
result = browser.find_element_by_class_name('description')
# result = browser.find_element(By.CLASS_NAME,'description')
print(result.text)
print('-------------------------------------------')
#通过ID属性寻找
result = browser.find_element_by_id("asideProfile")
# result = browser.find_element(By.ID,"asideProfile")
print(result.text)
print('-------------------------------------------')
#通过标签属性名差查找
result = browser.find_element_by_name("shenma-site-verification")
# result = browser.find_element(By.NAME,"shenma-site-verification")
print(result.text)
print('-------------------------------------------')
#通过元素内容
result = browser.find_element_by_link_text('路由器设置VPN,随时随地访问内部网络')
# result = browser.find_element(By.LINK_TEXT,"python")
print(result.text)
print('-------------------------------------------')
#通过元素部分内容
result = browser.find_element_by_partial_link_text('python')
# result = browser.find_element(By.LINK_TEXT,"python")
print(result.text)
print('-------------------------------------------')
#通过CSS选择器
result = browser.find_element_by_css_selector("#uid")
print(result.text)
print('-------------------------------------------')
#还可以利用Xpath实现,具体实现方法在这里就不做赘述了
# if __name__ == '__main__':
# main_test1()
具体的案例开发实例请参看Python进阶之借助selenium爬取淘宝商品信息