selenium

import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
from selenium.webdriver.firefox.options import Options as FOptions

options = FOptions()
browser = webdriver.Firefox(executable_path="G:/geckodriver.exe",firefox_options=options)
browser.get('https://sou.zhaopin.com/?jl=489&kw=%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95&kt=3')
browser.get('http://example.webscraping.com/places/default/view/China-47')
print(browser.find_element_by_xpath('//tr[@id="places_neighbours__row"]/td[@class="w2p_fw"]').text)
print(browser.page_source)

# 元素交互
browser.get("https://www.baidu.com")
input_element = browser.find_element_by_id("kw")
input_element.send_keys("iPhone")
time.sleep(10)
input_element.clear()
input_element.send_keys("iPad")
button = browser.find_element_by_id("su")
button.click()
time.sleep(10)
browser.close()

# 鼠标悬停点击
browser.maximize_window()
browser.get('http://example.webscraping.com')
article = browser.find_element_by_link_text('Log In')#必须是a标签里面的text
ActionChains(browser).move_to_element(article).perform() #产生一个移动鼠标的动作链,移动到log in元素(article)
menu = browser.find_element_by_xpath('//a[@href="/places/default/user/register?_next=/places/default/index"]')
menu.click()

# 动作链进阶
browser.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
browser.switch_to.frame('iframeResult')
source=browser.find_element_by_id('draggable')
target = browser.find_element_by_id('droppable')
actions = ActionChains(browser)
#动作链将一系列动作组织起来,形成一组测试,当调用perform的时候开始执行
actions.drag_and_drop(source,target)
actions.perform()
time.sleep(2)
t=browser.switch_to_alert()#获取浏览器弹框
print(t.text)
t.accept()
time.sleep(5)
browser.close()

# 切换到新窗口
browser.get('http://www.baidu.com')
handles = browser.window_handles
browser.switch_to.window(handles[-1])#最新的窗口
browser.switch_to.window(handles[0])

# 执行javascript
browser.get('https://sou.zhaopin.com/?jl=489&kw=%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95&kt=3')
time.sleep(3)
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
# page= browser.find_element_by_css_selector('div.pager')
# next1 = page.find_element_by_xpath('//button[1]')
# time.sleep(2)
# next.click()
time.sleep(10)
browser.close()

'''
Selenium添加访问cookie实现自动登录
有时需要在webDriver访问网站时,附带cookie实现免登陆访问,以下是一个简单的实现方式。

登录并保存cookie
'''
前面部分代码用于填写登录信息并登录
'''
# 获取cookie并通过json模块将dict转化成str
dictCookies = self.browser.get_cookies()
jsonCookies = json.dumps(dictCookies)
# 登录完成后,将cookie保存到本地文件
with open('cookies.json', 'w') as f:
    f.write(jsonCookies)
读取cookie实现免登陆访问
# 初次建立连接,随后方可修改cookie
self.browser.get('http://xxxx.com')
# 删除第一次建立连接时的cookie
self.browser.delete_all_cookies()
# 读取登录时存储到本地的cookie
with open('cookies.json', 'r', encoding='utf-8') as f:
    listCookies = json.loads(f.read())
for cookie in listCookies:
    self.browser.add_cookie({
        'domain': '.xxxx.com',  # 此处xxx.com前,需要带点
        'name': cookie['name'],
        'value': cookie['value'],
        'path': '/',
        'expires': None
    })
# 再次访问页面,便可实现免登陆访问
self.browser.get('http://xxx.com')

'''


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值