214 字
1 分鐘
selenium 快速取得元素靠這招

想要做的事情#

我想要自動滑動到憲法的第 43 條,在法條之中 CSS class=”row”非常多,這時自己慢慢算或是使用 BeautifulSoup 去找很耗時間,要靠的是 Chrome 的工具,按下 F12 或 Ctrl + Shift + I 可開啟。./selenium_emement01.jpg

使用 ActionChains 捲動#

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
url="https://law.moj.gov.tw/LawClass/LawAll.aspx?pcode=A0000001"
driver=webdriver.Chrome("C:/anaconda/chromedriver.exe") #驅動 路徑請設定自己的檔案路徑
driver.get(url)
driver.maximize_window()
sleep(0.3)
#element = driver.find_element_by_id("my-id")
content = driver.find_element(By.XPATH, '//*[@id="pnLawFla"]/div/div[48]') #元素位置
actions = ActionChains(driver)
actions.move_to_element(content).perform()

使用 javascript 捲動#

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
url="https://law.moj.gov.tw/LawClass/LawAll.aspx?pcode=A0000001"
driver=webdriver.Chrome("C:/anaconda/chromedriver.exe") #驅動 路徑請設定自己的檔案路徑
driver.get(url)
driver.maximize_window()
sleep(0.3)
#element = driver.find_element_by_id("my-id")
content = driver.find_element(By.XPATH, '//*[@id="pnLawFla"]/div/div[48]') #元素位置
driver.execute_script("arguments[0].scrollIntoView();", content)

參考文章:你想學更多關於 Scroll 以下可以看看

selenium 快速取得元素靠這招
https://aishuafei.com/posts/selenium-快速取得元素靠這招/
作者
愛耍廢
發佈於
2020-02-16
許可協議
CC BY-NC-SA 4.0