一、使用驱动打开浏览器,并进入百度网址。
from selenium import webdriver
driver = webdriver.Chrome(r’d:\chromedriver.exe’)
driver.implicitly_wait(5) #如果网页服务器没有返回响应,则每隔半秒再拉取一次直至超时5秒报错。
driver.get(‘http://www.baidu.com//’)
-==============================================================================-
二、selenium的一些页面操作。
.find_element_by_id(’’):选择元素的id属性
.find_elements_by_class_name(’’):选择元素的class属性
.find_elements_by_tag_name(’’):选择元素的tag名
find_element 和 find_elements 的区别:
使用 find_elements 选择的是符合条件的 所有 元素, 如果没有符合条件的元素, 返回空列表。
使用 find_element 选择的是符合条件的 第一个 元素, 如果没有符合条件的元素, 抛出 NoSuchElementException 异常。
click():点击
driver.quit():关闭浏览器
from time import sleep
sleep(2) #等待2秒
clear() :清除输入框已有的字符串
send_keys(’’) :输入新字符串
element = driver.find_element_by_id(‘animal’)
print(element.text) #获取元素的文本内容
无法获取元素的文本内容时,可以尝试使用 element.get_attribute(‘innerText’) ,或者 element.get_attribute(‘textContent’)
element = driver.find_element_by_id(‘input_name’)
print(element.get_attribute(‘class’)) #获取元素属性class的值
-==============================================================================-
三、更多的其他动作模拟(补充)
1.光标悬停在某个元素上
使用 ActionChains 来 模拟鼠标移动 操作的代码如下:
from selenium import webdriver
driver = webdriver.Chrome(r’f:\chromedriver.exe’)
driver.implicitly_wait(5)
driver.get(‘https://www.baidu.com/’)
from selenium.webdriver.common.action_chains import ActionChains
ac = ActionChains(driver)
·# 鼠标移动到 元素上
ac.move_to_element(
driver.find_element_by_css_selector(’[name=“tj_briicon”]’)
).perform()
.perform():鼠标移动到那做悬停动作
2.冻结界面
setTimeout(function(){debugger}, 5000)
·#这句代码什么意思呢?
表示在 5000毫秒后,执行 debugger 命令
执行该命令会 浏览器会进入debug状态。 debug状态有个特性, 界面被冻住, 不管我们怎么点击界面都不会触发事件。
所以,我们可以在输入上面代码并回车 执行后, 立即 鼠标放在界面 右上角 更多产品处。
这时候,就会弹出 下面的 糯米、音乐、图片 等图标。
然后,我们仔细等待 5秒 到了以后, 界面就会因为执行了 debugger 命令而被冻住。