2018-05-17 09:48:24 637浏览
什么是Selenium?selenium是一套完整的web应用程序测试系统,包含了测试的录制(seleniumIDE),编写及运行(SeleniumRemoteControl)和测试的并行处理(SeleniumGrid)。Selenium的核心SeleniumCore基于JsUnit,完全由Java编写,因此可以用于任何支持Java的浏览器上。selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决Java渲染问题。
Python3.5.2(default,Aug242016,16:48:29) [GCC4.2.1CompatibleAppleLLVM7.3.0(clang-703.0.31)]ondarwin Type"help","copyright","credits"or"license"formoreinformation. >>>fromseleniumimportwebdriver >>>help(webdriver)
PACKAGECONTENTS android(package) blackberry(package) chrome(package) common(package) edge(package) firefox(package) ie(package) opera(package) phantomjs(package) remote(package) safari(package) support(package) webkitgtk(package)
fromseleniumimportwebdriver browser=webdriver.Chrome() browser=webdriver.Firefox()
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.get("http://www.codingke.com")
print(browser.page_source)
browser.close()
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.get("http://www.codingke.com")
input_first=browser.find_element_by_id("q")
input_second=browser.find_element_by_css_selector("#q")
input_third=browser.find_element_by_xpath('//*[@id="q"]')
print(input_first)
print(input_second)
print(input_third)
browser.close()
这里我们通过三种不同的方式去获取响应的元素,第一种是通过id的方式,第二个中是CSS选择器,第三种是xpath选择器,结果都是相同的。find_element_by_name find_element_by_id find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_by_css_selector
fromselenium.webdriver.common.byimportBy
fromseleniumimportwebdriver
fromselenium.webdriver.common.byimportBy
browser=webdriver.Chrome()
browser.get("http://www.coodingke.com")
input_first=browser.find_element(By.ID,"q")
print(input_first)
browser.close()
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.get("http://www.codingke.com")
lis=browser.find_elements_by_css_selector('.service-bdli')
print(lis)
browser.close()
find_elements_by_name find_elements_by_id find_elements_by_xpath find_elements_by_link_text find_elements_by_partial_link_text find_elements_by_tag_name find_elements_by_class_name find_elements_by_css_selector
fromseleniumimportwebdriver
importtime
browser=webdriver.Chrome()
browser.get("http://www.codingke.com")
input_str=browser.find_element_by_id('q')
input_str.send_keys("ipad")
time.sleep(1)
input_str.clear()
input_str.send_keys("MakBookpro")
button=browser.find_element_by_class_name('btn-search')
button.click()
fromseleniumimportwebdriver
fromselenium.webdriverimportActionChains
browser=webdriver.Chrome()
url="http://www.codingke.com/try/try.php?filename=jqueryui-api-droppable"
browser.get(url)
browser.switch_to.frame('iframeResult')
source=browser.find_element_by_css_selector('#draggable')
target=browser.find_element_by_css_selector('#droppable')
actions=ActionChains(browser)
actions.drag_and_drop(source,target)
actions.perform()
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.get("http://www.codingke.com/explore")
browser.execute_('window.scrollTo(0,document.body.scrollHeight)')
browser.execute_('alert("ToBottom")')
get_attribute('class')
fromseleniumimportwebdriver
browser=webdriver.Chrome()
url='https://www.codingke.com/explore'
browser.get(url)
logo=browser.find_element_by_id('zh-top-link-logo')
print(logo)
print(logo.get_attribute('class'))
获取文本值
fromseleniumimportwebdriver
browser=webdriver.Chrome()
url='https://www.codingke.com/explore'
browser.get(url)
input=browser.find_element_by_class_name('zu-top-add-question')
print(input.text)
获取ID,位置,标签名
id
location
tag_name
size
fromseleniumimportwebdriver
browser=webdriver.Chrome()
url='https://www.codingke.com/explore'
browser.get(url)
input=browser.find_element_by_class_name('zu-top-add-question')
print(input.id)
print(input.location)
print(input.tag_name)
print(input.size)
Frame
importtime
fromseleniumimportwebdriver
fromselenium.common.exceptionsimportNoSuchElementException
browser=webdriver.Chrome()
url='http://www.codingke.com/try/try.php?filename=jqueryui-api-droppable'
browser.get(url)
browser.switch_to.frame('iframeResult')
source=browser.find_element_by_css_selector('#draggable')
print(source)
try:
logo=browser.find_element_by_class_name('logo')
exceptNoSuchElementException:
print('NOLOGO')
browser.switch_to.parent_frame()
logo=browser.find_element_by_class_name('logo')
print(logo)
print(logo.text)
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.implicitly_wait(10)
browser.get('https://www.zhihu.com/explore')
input=browser.find_element_by_class_name('zu-top-add-question')
print(input)
fromseleniumimportwebdriver
fromselenium.webdriver.common.byimportBy
fromselenium.webdriver.support.uiimportWebDriverWait
fromselenium.webdriver.supportimportexpected_conditionsasEC
browser=webdriver.Chrome()
browser.get('https://www.codingke.com/')
wait=WebDriverWait(browser,10)
input=wait.until(EC.presence_of_element_located((By.ID,'q')))
button=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'.btn-search')))
print(input,button)
back()
forward()
importtime
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.get('https://www.codingke.com/')
browser.get('https://www.codingke.com/')
browser.get('http://www.codingke.com/')
browser.back()
time.sleep(1)
browser.forward()
browser.close()
cookie操作
get_cookies()
delete_all_cookes()
add_cookie()
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.get('https://www.codingke.com/explore')
print(browser.get_cookies())
browser.add_cookie({'name':'name','domain':'www.codingke.com','value':'zhaofan'})
print(browser.get_cookies())
browser.delete_all_cookies()
print(browser.get_cookies())
importtime
fromseleniumimportwebdriver
browser=webdriver.Chrome()
browser.get('https://www.codingke.com')
browser.execute_('window.open()')
print(browser.window_handles)
browser.switch_to_window(browser.window_handles[1])
browser.get('https://www.codingke.com')
time.sleep(1)
browser.switch_to_window(browser.window_handles[0])
browser.get('http://www.codingke.com')
fromseleniumimportwebdriver
fromselenium.common.exceptionsimportTimeoutException,NoSuchElementException
browser=webdriver.Chrome()
try:
browser.get('https://www.codingke.com')
exceptTimeoutException:
print('TimeOut')
try:
browser.find_element_by_id('hello')
exceptNoSuchElementException:
print('NoElement')
finally:
browser.close()
以上就是扣丁学堂Python培训之爬虫selenium库使用详解的介绍,希望能给大家一个参考。想要了解更多内容的小伙伴可以登录扣丁学堂官网了解更多内容。扣丁学堂是专业的Python培训机构,不仅有专业的老师和与时俱进的课程体系,还有大量的Python视频教程供学员观看学习,想要学习Python的小伙伴快快行动吧。扣丁学堂Python技术交流群:279521237。
【关注微信公众号获取更多学习资料】