selenium语法实战

作者: 程序里的小仙女 | 来源:发表于2019-06-14 15:54 被阅读0次

import time

from selenium import webdriver
from selenium.webdriver.common.by import By

# 显式等待库
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait


# 调获取chrome用浏览器
browser = webdriver.Chrome()


# 打开指定网址
browser.get('http://www.taobao.com')

# 获取页面源码
time.sleep(10)
# 执行js往下执行
browser.execute_script('window.scrollTo(0, 1000)')

time.sleep(10)

html = browser.page_source
print(html)

# 解析页面源码可使用beautifulsoup(html), lxml.etree.HTML(html)
# pyquery(html)
good1 = browser.find_element_by_css_selector('#dg-item-tl-0')
good2 = browser.find_element_by_xpath('//*[@id="dg-item-tl-0"]')
good3 = browser.find_element_by_id('dg-item-tl-0')
good4 = browser.find_element(By.ID,'dg-item-tl-0')
print(good1.text)
print(good2.text)
print(good3.text)
print(good4.text)

# 关闭浏览器
browser.close()

# 前进后退
broswer = webdriver.Chrome()
broswer.get('https://www.baidu.com')
broswer.get('https://www.taobao.com')
broswer.get('https://www.zhihu.com')
# 回退一步
broswer.back()
# 前进一步
broswer.forward()


# 等待
browser = webdriver.Chrome()
browser.get('https://www.taobao.com')
# 隐式等待
#
# 默认情况下等待时长为0
# implicitly_wait(10)比time.sleep(10)更加智能,time.sleep(10)必须等待十秒,如果已经加载出来还要等待满10秒
browser.implicitly_wait(10)
browser.execute_script('window.scrollTo(0, 1000)')

good2 = browser.find_element_by_xpath('//*[@id="dg-item-tl-0"]')
print(good2)

browser.close()


# 显示等待
# 等待元素是否被加载出来,还可以判断加载的元素是否有点击效果,是否等于某些值...

browser = webdriver.Chrome()

browser.get('https://www.taobao.com')

wait = WebDriverWait(browser, 10)

browser.execute_script('window.scrollTo(0, 1000)')

good6 = wait.until(
    # 等待元素被加载
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, '#dg-item-tl-0'))
)


button = wait.until(
    # 等待元素被加载,且具有click效果
    EC.element_to_be_clickable((By.CSS_SELECTOR, '#J_SearchTab > ul > li.J_SearchTab.selected.goods-search-tab'))
)

print(good6)
browser.close()

# 打开jd,并输入内容实现点击
browser = webdriver.Chrome()
browser.get('http://www.1234567.com.cn')
# 显式等待
wait = WebDriverWait(browser, 10)

input = wait.until(
    EC.presence_of_element_located((By.CSS_SELECTOR, '#search-input'))
)

button = wait.until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '#searchbar > div > div.searchbar-form.search-left > form > div.searchbar-btn.search-left > button'))
)

# 清空输入框
input.clear()
# 输入内容
input.send_keys('招商白酒')
# 点击搜索
button.click()

time.sleep(10)
button1 = wait.until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '#addSel'))
)

button1.click()

相关文章

网友评论

    本文标题:selenium语法实战

    本文链接:https://www.haomeiwen.com/subject/nljpfctx.html