天天看點

day36(1224):滑鼠、鍵盤、下拉清單、js操作(滾動條操作)

"""
滾動的目标:為了讓自己要操作的元素,到可視區域當中。

事情:将我要操作的元素,拖動到可實視區域當中

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操作(滾動條操作)

繼續閱讀