selenium定位

一、基本语法
driver = webdriver.Chrome() 打开谷歌浏览器,其中不同的浏览器需要下载对应的驱动。
driver.get("https://www.baidu.com") 访问地址

元素定位操作
id定位:find_element_by_id()
name定位:find_element_by_name()
tag定位:find_element_by_tag_name() #,如input,a标签等
class定位:find_element_by_class_name()
link_text定位:find_element_by_link_text() #定位文本链接
partial_link_text:find_element_by_partial_link_text() #定位部分文本链接文本字数过长,可使用该链接方式
xpath:
1、绝对路径定位
find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span/input")
2、元素属性定位
如下://input表示当前页面某个input标签,,若不想制定标签名,可以用(*)代替。
find_element_by_xpath("//input[@id='kw']")
find_element_by_xpath("//*[@name='wd']")
find_element_by_xpath("//*[@class='s_ipt']")
3、层级与属性结合
find_element_by_xpath("//form[@id='form']/span/input")
4、使用逻辑运算符
find_element_by_xpath("//input[@id='kw' and @class='s_ipt']") #and 表示必须满足两个条件来定位元素。
5、使用 contains 方法
find_element_by_xpath("//span[contains(@calss,'s_ipt_wr')]/input") #contains 方法只取了 class 属性中的“s_ipt_wr”部分。
6、使用 text()方法
find_element_by_xpath("//a[text(),'新闻')]")
css_seleector定位:
find_element_by_css_selector()

用By定位元素
find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS_NAME,"s_ipt")
find_element(By.TAG_NAME,"input")
find_element(By.LINK_TEXT,"新闻")
find_element(By.PARTIAL_LINK_TEXT,"新")
find_element(By.XPATH,"//*[@class='bg s_btn']")
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")

控制浏览器
控制大小:set_window_size(480, 800)
控制后退:driver.back()
控制前进: driver.forward()
浏览器刷新:driver.refresh()

鼠标操作
ActionChains(driver).move_to_element(above).perform()
ActionChains 类提供了鼠标操作的常用方法:
 perform():执行 ActionChains 类中存储的所有行为。
 context_click():右击。
 double_click():双击。
 drag_and_drop():拖动。
 move_to_element():鼠标悬停。

元素等待
显示等待:WebDriverWait(driver, 5, 0.5).until(EC.visibility_of_element_located((By.ID, "kw")))
隐式等待:driver.implicitly_wait(10)

posted @ 2021-11-23 16:17  爱吃橙子_09  阅读(58)  评论(0)    收藏  举报