"""
滾動的目标:為了讓自己要操作的元素,到可視區域當中。
事情:将我要操作的元素,拖動到可實視區域當中
js語句:
滾動到可視區域的基本文法:
element.scrollIntoView();(适用于網頁中的所有滾動條)
很多網站是可以自己去滾動到可視區域
1、移動到元素element對象的“底端”與目前視窗的“底部”對齊:
driver.execute_script("arguments[0].scrollIntoView(false);",element)
2、移動到元素element對象的“頂端”與目前視窗的“頂部”對齊 :
driver.execute_script("arguments[0].scrollIntoView();",element)
3、移動到頁面底部:
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
4、移動到頁面頂部:
driver.execute_script("window.scrollTo(document.body.scrollHeight,
0)")
# 函數: scrollIntoViewIfNeeded
"""
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
# 開啟與浏覽器的會話 -newSession
driver=webdriver.Chrome()
# 隐形性等待 -1)等待元素被找到 2)等待指令執行完成
# driver.implicitly_wait(20) #最多等待20秒。20秒什麼也沒找到,什麼時候繼續執行後面的代碼
driver.get("http://www.baidu.com")
# driver.find_element_by_id('kw').send_keys("檸檬班")
# driver.find_element_by_id("su").click() # 點選百度一下按鈕
driver.find_element_by_id('kw').send_keys("檸檬班",Keys.ENTER)
# 找到百度百科并去點選
loc = (By.XPATH,'//a[text()=" - 首頁"]')
WebDriverWait(driver,20).until(EC.visibility_of_element_located(loc))
element = driver.find_element(*loc)
# # 通過js将元素滾動到可視區域後,再去點選
# # 執行js語句的函數.argument--清單(用于接收外部傳來的參數)
driver.execute_script("arguments[0].scrollIntoView(false);",element)
# readonly=driver.execute("return argument[0].readonly;",element)
time.sleep(2)
element.click()
time.sleep(60)
driver.quit()
day36(1224):滑鼠、鍵盤、下拉清單、js操作(滾動條操作)