常用语法
驱动常用方法
| driver.maximize_window() |
| driver.set_window_size(w,h) |
| driver.set_window_position(x,y) |
| driver.back() |
| driver.forward() |
| driver.refresh() |
| driver.close() |
| driver.quit() |
| driver.get() |
| driver.title |
| driver.current_url |
| driver.get_screenshot_as_file('截图.png') |
| driver.name |
| driver.page_source |
| driver.switch_to.window() |
元素常用方法
| find_element(by=By.ID, value) |
| find_element(by=By.NAME, value) |
| find_element(by=By.XPATH, value) |
| find_element(by=By.LINK_TEXT, value) |
| find_element(by=By.PARTIAL_LINK_TEXT, value) |
| find_element(by=By.TAG_NAME, value) |
| find_element(by=By.CLASS_NAME, value) |
| find_element(by=By.CSS_SELECTOR, value) |
| element.click() |
| element.send_keys("text") |
| element.clear() |
| element.submit() |
| element.is_displayed() |
| element.is_enabled() |
| element.is_selected() |
| element.get_attribute("attribute-name") |
| element.set_attribute("attribute-name", "value") |
| driver.execute_script("arguments[0].scrollIntoView();", element) |
| element.text |
| element.location |
| element.size |
延时等待
隐式等待
| from selenium import webdriver |
| driver = webdriver.Chrome() |
| driver.implicitly_wait(20) |
强制等待
| from time import sleep |
| sleep(2) |
显式等待
| from selenium.webdriver.support.wait import WebDriverWait |
| from selenium.webdriver.support import expected_conditions as EC |
| from selenium.webdriver.common.by import By |
| |
| |
| |
| WebDriverWait(driver,30,0.5).until(EC.presence_of_element_located((By.ID,'kw'))) |
浏览器选项
| options = webdriver.ChromeOptions() |
| options.add_argument('lang=zh_CN.UTF-8') |
| options.add_argument('--headless') |
| options.add_argument('--disable-gpu') |
| options.add_argument('--start-maximized') |
| options.add_argument('--window-size=1920x1024') |
| options.add_argument('--user-agent=""') |
| options.add_argument('--incognito') |
| options.add_argument(f'--proxy-server={proxy}') |
| driver.set_page_load_timeout(20) |
| options.add_experimental_option('detach', True) |
| |
| driver = webdriver.Chrome(options=options) |
| driver.get('https://www.baidu.com') |
By方法
| |
| |
| |
| from selenium import webdriver |
| from selenium.webdriver.chrome.service import Service |
| from selenium.webdriver.common.by import By |
| from selenium.common.exceptions import NoSuchElementException |
| |
| |
| |
| opt = webdriver.ChromeOptions() |
| opt.add_argument("--headless") |
| |
| |
| wd = webdriver.Chrome(options=opt,service=Service(r'D:\ChormDriver\chromedriver-win64\chromedriver.exe')) |
| |
| |
| wd.get('https://www.byhy.net/_files/stock1.html') |
| |
| |
| stock_input = wd.find_element(By.ID, 'kw') |
| stock_input.send_keys('通讯') |
| stock_sear = wd.find_element(By.ID, 'go') |
| stock_sear.click() |
| |
| wd.implicitly_wait(30) |
| |
| |
| stockname_list = wd.find_elements(By.CLASS_NAME,'result-item') |
| |
| if len(stockname_list) == 0: |
| print("没有获取到任何对象,程序退出") |
| exit() |
| else: |
| for item in stockname_list: |
| print(item.text) |
| |
| |
| wd.close() |
| |
| |
| |
| input('等待回车键结束程序') |
CSS选择器
css选择器是更加全能的元素定位语法。
| |
| |
| |
| from selenium import webdriver |
| from selenium.webdriver.chrome.service import Service |
| from selenium.webdriver.common.by import By |
| from selenium.common.exceptions import NoSuchElementException |
| |
| |
| |
| opt = webdriver.ChromeOptions() |
| |
| opt.add_argument('--disable-gpu') |
| |
| |
| wd = webdriver.Chrome(options=opt,service=Service(r'D:\ChormDriver\chromedriver-win64\chromedriver.exe')) |
| |
| |
| wd.get('https://www.byhy.net/_files/stock1.html') |
| |
| |
| stock_input = wd.find_element(By.CSS_SELECTOR, 'input') |
| print(stock_input.get_attribute("outerHTML")) |
| stock_input.send_keys('通讯') |
| stock_sear = wd.find_element(By.CSS_SELECTOR, '#go') |
| stock_sear.click() |
| |
| wd.implicitly_wait(30) |
| |
| |
| stockname_list = wd.find_elements(By.CSS_SELECTOR,'.result-item') |
| |
| if len(stockname_list) == 0: |
| print("没有获取到任何对象,程序退出") |
| exit() |
| else: |
| for item in stockname_list: |
| print(item.text) |
| |
| |
| wd.close() |
| |
| |
| |
| input('等待回车键结束程序') |
程序打包
注意exe程序的位置不能移动,否则无法加载外部库。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)