0
点赞
收藏
分享

微信扫一扫

Python selenium 使用

霸姨 2022-08-01 阅读 98


1. headless模式初始化

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=chrome_options)
wait = WebDriverWait(browser, 10)

 

2.打开一个URL

 

url = 'https://s.taobao.com/search?q=IPad'
browser.get(url)

3. 等待直到什么元素可见或者可以点击

 

input = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-pager div.form > input')))
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#mainsrp-pager div.form > span.btn.J_Submit')))
wait.until(EC.text_to_be_present_in_element((By.CSS_SELECTOR, '#mainsrp-pager li.item.active > span'), str(page)))

4.输入框输入文字

 

input.clear()
input.send_keys(page)

5. 按钮点击

 

submit.click()

6.得到html源码

 

html = browser.page_source

7.截图,裁剪

 

screenshot = self.browser.get_screenshot_as_png()
screenshot = Image.open(BytesIO(screenshot))
captcha = screenshot.crop((left, top, right, bottom - PADDING_BOT))
captcha.save(name)

8.元素位置大小

 

img = self.wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'dx_captcha_basic_bg')))
location = img.location
size = img.size
top, bottom, left, right = location['y'] , location['y'] + size['height'], location['x'], location['x'] + size['width']

9. 按住移动距离

ActionChains(self.browser).click_and_hold(slider).perform()
for x in track:
ActionChains(self.browser).move_by_offset(xoffset=x, yoffset=0).perform()
time.sleep(0.5)
ActionChains(self.browser).release().perform()

10 拖动

 

browser =webdriver.Chrome()
browser.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
browser.switch_to.frame('iframeResult') # id = '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()

11 得到cookie

 

cookies = driver.get_cookies()

 


 

举报

相关推荐

0 条评论