selenium基础知识1

一、元素的8种定位  (以百度为例)

#导入所需要的包

from selenium import webdriver

dr = webdriver.Chrome()

dr.get("https://www.baidu.com/")

1、通过id定位

dr.find_element_by_id("kw").send_keys("selenium自动化")

2.通过name定位

dr.find_element_by_name("").send_keys("selenium自动化")

3、通过class_name定位

dr.find_element_by_class_name("s_ipt").send_keys("selenium自动化")

4、通过link_text定位

dr.find_element_by_link_text("新闻").click()

5.通过partail_link_text定位

dr.find_element_by_link_text("新闻").click()

dr.find_element_by_partail_link_text("主持中央深化").click()

6.通过tag_name来定位

input1 = dr.find_elements_by_tag_name("input")
for input2 in input1:
if input2.get_attribute("class") == "s_ipt" \
and input2.get_attribute("autocomplete") =="off"

dr.input1.send_keys

 

7.通过xpath定位

dr.find_element_by_xpath('//input[@id="kw"]').send_keys("天行健,君子当自强不息")

8.通过css_selector定位

dr.find_element_by_css_selector(input[name=id]).send_keys("天行健,君子当自强不息")

dr.find_element_by_css_selector("#kw").send_keys("天行健,君子当自强不息")

 

二、By类

from selenium import webdriver

#导入By类的包
from selenium.webdriver.common.by import By

dr = webdriver.Chrome()
dr.get("https://www.baidu.com/")
# dr.find_element(By.ID,"kw").send_keys("selenium自动化")
# dr.find_element(By.CLASS_NAME,"s_ipt").send_keys("selenium")
# dr.find_element(By.XPATH,'//input[@id="kw"]').send_keys("selenium自动化")
# dr.find_element(By.CSS_SELECTOR,"input[autocomplete=off]").send_keys("web自动化")
dr.find_element(By.LINK_TEXT,"新闻").click()
dr.find_element(By.PARTIAL_LINK_TEXT,"中国国际进口").click()

 

三、设置元素等待。三种方式

1、sleep(s) python time模块下面的方法

2、implicitly_wait(s)     webdriver   隐式等待(就是在创建driver时,为浏览器对象创建一个等待时间,这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。)

例:

from selenium import webdriver

dr = webdrier.Chrome()

dr.implicitly_wait(5)

dr.get("https//www.baidu.com/")

dr.find_element_by_id("kw").send_keys("selenium自动化")

dr.find_element_by_id("su").click()

 

3、webDriverWait显示等待(显示等待是应该使用 selenium.webdriver.support.excepted_conditions期望的条件和selenium.webdriver.support.ui.webDriverWait 来配合完成。)

例:

from selenium import webdriver

from time import ctime

from.selenium.webdriver.support.ui import webDriverWait

dr = webdriver.Chrome()

dr.get("https//www.baidu.com")

#WebDriverWait显示等待 Selenium模块中的EC类提供的方法
print ("%s"%ctime())
try:
wait = WebDriverWait(dr,5,0.5).until(lambda dr:dr.find_element_by_id("kddaw"))
except:
print ("%s"%ctime())

 

posted @ 2018-11-17 23:57  石破天惊sjj  阅读(205)  评论(0编辑  收藏  举报