lzykevin
5/3/2020 - 3:55 AM

selenium库的基本使用

模拟浏览器操作

# selenium库的基本使用
import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver import ActionChains
# https://www.jianshu.com/p/3aa45532e179

# 声明浏览器
# 下载Firefox的驱动geckodriver放在目录:https://github.com/mozilla/geckodriver/releases
# 下载driver:http://selenium-release.storage.googleapis.com/index.html
browser = webdriver.Firefox()

url = 'https:www.baidu.com'
browser.get(url)
print(browser.page_source)
# browser.close()

# 查找元素
browser = webdriver.Firefox()
url = 'https:www.taobao.com'
browser.get(url)
# 单元素查找
input_first = browser.find_element_by_id('q')
# input_first2= browser.find_element(By.ID,'q')
# 多元素查找
input = browser.find_elements_by_css_selector('.service-bd li')
input2= browser.find_elements(By.CSS_SELECTOR,'.service-bd li')

# css_selector的使用
'''
.开头 定位class
#开头 定位id
eg.
<div class="inner active"></div>    -->  .inner.active  //  div.inner
https://www.cnblogs.com/mululu/p/9283278.html
'''

# 元素交互
browser = webdriver.Firefox()
browser.get(url='https://www.baidu.com')
time.sleep(2)
input = browser.find_element_by_css_selector('#kw')
# input = browser.find_elements_by_css_selector('input#kw')
input.send_keys('selenium库的基本使用')
time.sleep(2)
input.clear()
input.send_keys('selenium')
baidu_button = browser.find_element_by_css_selector('#su')
baidu_button.click()

# 交互动作
browser = webdriver.Firefox()
url = "http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable"
browser.get(url=url)
browser.switch_to.frame('iframeResult')
source = browser.find_element_by_css_selector('#draggable')
target = browser.find_element_by_css_selector('#droppable')
actions = ActionChains(browser)
actions.drag_and_drop(source, target)
actions.perform()

# 执行JavaScript
browser = webdriver.Firefox()
browser.get(url="http://www.zhihu.com/explore")
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
browser.execute_script('alert("To Bottom")')
browser.execute_script('document.getElementById('textarea').scrollTop = document.getElementBy('textarea').scrollHeight')

# 获取元素
logo = browser.find_element_by_css_selector('.Icon')
print(logo.get_attribute('class'))
print(logo.text) # 此处无效

# 获取其他信息
browser = webdriver.Chrome()
url = 'https://www.zhihu.com/explore'
browser.get(url)
input = browser.find_element_by_css_selector('.zu-top-add-question')
print(input.id)
print(input.location)
print(input.tag_name)
print(input.size)