最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

14. Selenium 處理滾動條

2020-07-01 11:44 作者:自學(xué)Python的小姐姐呀  | 我要投稿

Selenium 處理滾動條

selenium并不是萬能的,有時(shí)候頁面上操作無法實(shí)現(xiàn)的,這時(shí)候就需要借助JS來完成了

  當(dāng)頁面上的元素超過一屏后,想操作屏幕下方的元素,是不能直接定位到,會報(bào)元素不可見的。這時(shí)候需要借助滾動條來拖動屏幕,使被操作的元素顯示在當(dāng)前的屏幕上。滾動條是無法直接用定位工具來定位的。selenium里面也沒有直接的方法去控制滾動條,這時(shí)候只能借助J了,還好selenium提供了一個(gè)操作js的方法:execute_script(),可以直接執(zhí)行js的腳本

一. 控制滾動條高度

1.1滾動條回到頂部:

js="var q=document.getElementById('id').scrollTop=0"
driver.execute_script(js)

1.2滾動條拉到底部

js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)

可以修改scrollTop 的值,來定位右側(cè)滾動條的位置,0是最上面,10000是最底部

以上方法在Firefox和IE瀏覽器上上是可以的,但是用Chrome瀏覽器,發(fā)現(xiàn)不管用。Chrome瀏覽器解決辦法:

js = "var q=document.body.scrollTop=0"
driver.execute_script(js)


二.橫向滾動條

2.1 有時(shí)候?yàn)g覽器頁面需要左右滾動(一般屏幕最大化后,左右滾動的情況已經(jīng)很少見了)

2.2 通過左邊控制橫向和縱向滾動條scrollTo(x, y)

js = "window.scrollTo(100,400)"
driver.execute_script(js)

三.元素聚焦

雖然用上面的方法可以解決拖動滾動條的位置問題,但是有時(shí)候無法確定我需要操作的元素在什么位置,有可能每次打開的頁面不一樣,元素所在的位置也不一樣,怎么辦呢?這個(gè)時(shí)候我們可以先讓頁面直接跳到元素出現(xiàn)的位置,然后就可以操作了

同樣需要借助JS去實(shí)現(xiàn)。 具體如下:

target = driver.find_element_by_xxxx()
driver.execute_script("arguments[0].scrollIntoView();", target)

四. 參考代碼

from selenium import webdriver
from lxml import etree
import time

url = "https://search.jd.com/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&wq=%E7%AC%94%E8%AE%B0%E6%9C%AC&pvid=845d019c94f6476ca5c4ffc24df6865a"
# 加載瀏覽器
wd = webdriver.Firefox()
# 發(fā)送請求
wd.get(url)
# 要執(zhí)行的js
js = "var q = document.documentElement.scrollTop=10000"
# 執(zhí)行js
wd.execute_script(js)

time.sleep(3)
# 解析數(shù)據(jù)
e = etree.HTML(wd.page_source)
# 提取數(shù)據(jù)的xpath
price_xpath = '//ul[@class="gl-warp clearfix"]//div[@class="p-price"]/strong/i/text()'
# 提取數(shù)據(jù)的
infos = e.xpath(price_xpath)

print(len(infos))
# 關(guān)閉瀏覽器
wd.quit()


14. Selenium 處理滾動條的評論 (共 條)

分享到微博請遵守國家法律
云安县| 义马市| 乌拉特后旗| 寿光市| 巫溪县| 安庆市| 忻州市| 东丽区| 越西县| 耒阳市| 东阳市| 朝阳市| 康马县| 湘潭市| 眉山市| 淳安县| 正宁县| 漯河市| 祁阳县| 辛集市| 鹤峰县| 新乐市| 新乡县| 山丹县| 泰兴市| 炉霍县| 保德县| 栖霞市| 陇川县| 凉城县| 南乐县| 康马县| 扶风县| 衡水市| 分宜县| 梅州市| 八宿县| 乌鲁木齐市| 天长市| 修武县| 巴林左旗|