selenium入门

1.简单的例子

from selenium import webdriver  # 导入浏览器驱动,用来连接浏览器
from selenium.webdriver.common.keys import Keys  # 按键捕捉

driver = webdriver.Firefox()  # 创建火狐浏览器的实例
driver.get("http://www.python.org")  # 打开网页
assert "Python" in driver.title  # 判断标题是否包含"python"
elem = driver.find_element_by_name("q")  # 通过name属性获得元素
elem.clear()  # 清空元素里面的内容
elem.send_keys("pycon")  # 填写内容
elem.send_keys(Keys.RETURN)  # 发送回车
assert "No results found." not in driver.page_source  # 再次判断
driver.close()  # 关闭浏览器

打开一个页面

driver.get("http://www.google.com")  # 打开一个页面

2.1.input标签
假设有以下的标签

<input type="text" name="passwd" id="passwd-id" />

通过以下方法获得该元素

element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")

通过以下方法交互

element.clear()  # 清空内容
element.send_keys("some text")  # 填写内容
element.send_keys(" and some", Keys.ARROW_DOWN)  # 模拟键盘

2.2.select标签

from selenium.webdriver.support.ui import Select
select = Select(driver.find_element_by_name('name'))  # 获得select对象
select.select_by_index(index)  # 按索引选择
select.select_by_visible_text("text")  # 按内容选择
select.select_by_value(value)  # 按值选择
select.deselect_all()  # 取消选择
options = select.options  # 获得所有选项
all_selected_options = select.all_selected_options  # 获得所有已选择的选项

driver.find_element_by_id("submit").click()  # 提交表单
element.submit()  # 提交表单的第二种方法,就近获得表单,并提交

2.3.移动元素

element = driver.find_element_by_name("source")
target = driver.find_element_by_name("target")

from selenium.webdriver import ActionChains
action_chains = ActionChains(driver)
action_chains.drag_and_drop(element, target).perform()

2.4.窗口之间移动

driver.switch_to_window("windowName")

2.5.弹窗

alert = driver.switch_to_alert()

2.6.访问历史数据

driver.forward()
driver.back()

2.7.cookies

# Go to the correct domain
driver.get("http://www.example.com")

# Now set the cookie. This one's valid for the entire domain
cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’}
driver.add_cookie(cookie)

# And now output all the available cookies for the current URL
driver.get_cookies()

3.查找元素

返回单个元素返回列表描述
find_element_by_idfind_elements_by_id通过id查找元素
find_element_by_namefind_elements_by_name
find_element_by_xpathfind_elements_by_xpath
find_element_by_link_textfind_elements_by_link_text
find_element_by_partial_link_textfind_elements_by_partial_link_text
find_element_by_tag_namefind_elements_by_tag_name
find_element_by_class_namefind_elements_by_class_name
find_element_by_css_selectorfind_elements_by_css_selector

4.控制页面加载
4.1.设置判断加载条件

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

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()

4.2.设置加载等待时间

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://somedomain/url_that_delays_loading")
myDynamicElement = driver.find_element_by_id("myDynamicElement")
  1. 发送网页操作
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.common.keys import Keys

    browser = webdriver.Chrome("./chromedriver")  # 打开谷歌浏览器
    browser.get("https://www.xxx.com/")  # 打开打开对应的网址
    action = ActionChains(browser)
    action.send_keys(Keys.PAGE_DOWN)
    action.perform()
    browser.close()  # 关闭谷歌浏览器

参考文献:
http://selenium-python.readthedocs.io/getting-started.html
http://selenium-python-zh.readthedocs.io/en/latest/getting-started.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值