Selenium快速入门之1:最常使用方法整理

    技术2022-07-10  106

    Selenium最早是为了测试浏览器、网页的,但目前也被广泛应用于网络爬虫。本文整理Selenium最常见的使用方法。

    一、创建webdriver,打开特定页面  

    #打开浏览器、百度网站 driver = webdriver.Chrome() driver.get("https://baidu.com")

    二、设置浏览器大小、设置页面大小  

    driver = webdriver.Chrome() driver.get("https://baidu.com")

    三、页面前进/后退、刷新、保存截屏

    #后退 driver.back() #前进 driver.forward() #刷新 driver.refresh() #保存当前页面截屏 driver.save_screenshot("save_1.png")

    四、关闭页面、退出浏览器

    driver.close() driver.quit()

    五、等待

    #强制等待 2 秒 time.sleep(2) #隐性等待,最长等 30 秒 dr.implicitly_wait(30) #显式等待,每隔 0.5 秒进行一次检查,最长等 20 秒 WebDriverWait(dr, 20, 0.5).until(EC.presence_of_element_located((By.LINK_TEXT,u'首 页')))

    六、打开多个页面

    # 打开浏览器 driver=webdriver.Chrome() driver.get("http://baidu.com") # 停留两秒后打开搜狗搜索 driver=webdriver.Chrome() driver.get("http://baidu.com") #停留两秒后打开有道翻译 time.sleep(2) time.sleep(2) JS2='window.open("https://fanyi.youdao.com/");' driver.execute_script(JS2)

    七、使用JS下滑到页面底部

    driver=webdriver.Chrome() driver.get("https://top.baidu.com//") JS="window.scrollTo(10000,document.body.scrollHeight)" driver.execute_script(JS)

    八、Cookie处理

    #获取所有cookie cookies=driver.get_cookies() #获取key为BAIDUID的cookie cookie=driver.get_cookie("BAIDUID") #删除所有的cookie driver.delete_all_cookies()

    九、元素定位

    #根据ID定位 driver.find_element_by_id("kw") #根据NAME定位 driver.find_element_by_name("wd") #根据Xpath定位 driver.find_element_by_xpath(r'//*[@id="kw"]') #根据CSS选择器定位 driver.find_element_by_css_selector("#kw") #根据Link Text定位 driver.find_element_by_link_text("新闻")

    关于xpath、CSS的使用,可参见文章:

    解析html:Xpath快速了解使用、解析html:CSS Selector快速了解使用

    十、文本框输入,按钮点击

    driver.get("http://cn.bing.com/") keywords = 'SELENIUM爬虫' # id="sb_form_q"是 bing 搜索输入框,输入字符串"SELENIUM 自动化测试" driver.find_element_by_id("sb_form_q").send_keys(keywords) #点击搜索按钮 driver.find_element_by_id("sb_form_go").click()

    十一、不同frame之间转换

    #找到特定的frame并切换 Frame_name= driver.find_element_by_id(【Frame_name】) driver.switch_to_frame(Frame_name) #回到默认的frame driver.switch_to_default_content()

    十二、使用JS修改页面标题、进行弹窗

    #启动浏览器,打开页面 driver=webdriver.Chrome() driver.get("https://www.baidu.com/") #修改页面标题 time.sleep(5) JS1="document.title='xxxxxx';" driver.execute_script(JS1) #弹窗 time.sleep(5) JS2=r"alert($(document).attr('title'));" driver.execute_script(JS2) #退出 time.sleep(5) driver.quit()

    Processed: 0.017, SQL: 9