WebDriver
WebDriver æ¯è¿ç¨æ§å¶æ¥å£ï¼å¯ä»¥å¯¹ç¨æ·ä»£çè¿è¡æ§å¶ã宿ä¾äºä¸ä¸ªå¹³å°åä¸ç«è¯è¨åè®®ç»æï¼ä½ä¸ºè¿ç¨å¤ç¨åºè¿ç¨æå¯¼ web æµè§å¨è¡ä¸ºçæ¹æ³ã
å ·å¤ç¼åå¯ä»¥å¨ä¸åå¹³å°ä¸çè®¸å¤æµè§å¨ä¸äºæ¢è¿è¡çæä»¤éçè½åï¼å¯¹äºåç¨æ·æä¾ä¸è´çä½éªè³å ³éè¦ãéçç½ç»å¹³å°çæ°ä¸è½®åå±ï¼è®¾å¤å¤æ ·æ§çå¢å 以åå¯¹ææ¯ä¹é´çæ£çäºæä½æ§çè¦æ±ï¼WebDriver æä¾äºè·¨æµè§å¨æµè¯çå·¥å ·ã
WebDriver ææä¾çæ¯ä¸ç»æ¥å£ï¼ç¨äºåç°åæä½ç½ç»ææ¡£ä¸ç DOM å ç´ ï¼å¹¶æ§å¶ç¨æ·ä»£ççè¡ä¸ºãå®ç主è¦ç®çæ¯è®© web ä½è ç¼åæµè¯ï¼ä»åç¬çæ§å¶è¿ç¨ä¸å®ç°ç¨æ·ä»£ççèªå¨åï¼ä½ä¹å¯ä»¥ç¨è¿æ ·çæ¹å¼ï¼è®©æµè§å¨å çèæ¬æ§å¶ä¸ä¸ªï¼åç¬çï¼æµè§å¨ã
ä½¿ç¨æ¹æ³
é£ä¹ï¼WebDriver å¯ä»¥è®©ä½ åä»ä¹ï¼å®åæ¯ä»ä¹æ ·åçï¼ç±äº WebDriver æ¯ç¼ç¨è¯è¨ä¸ç«çï¼è¿ä¸ªé®é¢ççæ¡åå³äºä½ æä½¿ç¨ç WebDriver 客æ·ç«¯åè¯è¨çéæ©ã
使ç¨ä¸ä¸ªç¨æµè¡ç Python è¯è¨ç¼åç客æ·ç«¯ï¼ä¸ WebDriver çäºå¨å¯è½çèµ·æ¥åè¿æ ·ï¼
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
with webdriver.Firefox() as driver:
driver.get("http://google.com/ncr")
wait = WebDriverWait(driver, 10)
driver.find_element(By.NAME, "q").send_keys("cheese" + Keys.RETURN)
wait.until(presence_of_element_located((By.XPATH, '//*[@id="rcnt"]')))
results = driver.find_elements(By.XPATH, "//a[@href]")
for i, elem in enumerate(results):
print(f'#{i} {elem.text} ({elem.get_attribute("href")})')
å®å¯è½ä¼è¾åºï¼
#1 Cheese - Wikipedia (https://en.wikipedia.org/wiki/Cheese)