Selenium 提供了 8 种定位单个节点的方法,如下所示:
<html><head><body link="#cc0916"> <a id="logo" href="http://c." onclick=""> <form id="form" class="fm" name="f" action="c."> <span class="btn"></span> <input id="kw" class="s_ipt_wr" name="wd" value="" maxlength="255" autocomplete="off"></body></head></html> 下面使用表格中提供的方法定位 input 输出框。如下所示: #创建browser是浏览器对象browser = webdriver.Chrome()#访问某个url得到上述代码片段browser.get('url')#通过id定义输入框browser.dr.find_element_by_id("kw")#通过class定义browser.find_element_by_class_name("s_ipt_wr")#通过name定位browser.find_element_by_name("wd")#通过tag name定位:browser.find_element_by_tag_name("input")#通过xpath定位browser.find_element_by_xpath("//*[@id='kw']")#通过css选择器定位browser.find_element_by_css_selector("#kw") 通过 a 标签内的文本内容定位节点,如下所示: <a class="vip" href="http://c.">C语言中文网</a> <a class="search" href="http://www.baidu.com">hao123</a> 示例如下: #使用全部文本内容定位链接browser.find_element_by_link_text("c语言中文网")#使用部分文本内容定位链接browser.find_element_by_partial_link_text("123") 如果您想定位一组元素,方法如下所示: find_elements_by_id() find_elements_by_name() find_elements_by_class_name() find_elements_by_tag_name() find_elements_by_link_text() find_elements_by_partial_link_text() find_elements_by_xpath() find_elements_by_css_selector() 定位一组元素的方法与定位单个元素类似,唯一的区别就是 element 后面多了一个 s(表示复数),因此上述方法的返回值是一个列表,您可以使用 for 循环拿到所有的元素节点。 控制浏览器Selenium 可以操控浏览器的窗口大小、刷新页面,以及控制浏览器的前进、后退等 1) 设置浏览器窗口大小、位置from selenium import webdriverdriver = webdriver.Chrome()driver.get("http://www.baidu.com")#参数数字为像素点driver.set_window_size(480, 800)#设置窗口位置driver.set_window_position(100,200)#同时设置窗口的大小和坐标driver.set_window_rect(450,300,32,50)#退出浏览器driver.quit() 2) 控制网页前进、后退、刷新页面from selenium import webdriverdriver = webdriver.Chrome()# 访问C语言中文网首页first_url= 'http://c.'driver.get(first_url)# 访问c语言教程second_url='http://c./c/'driver.get(second_url)# 返回(后退)到c语言中文网首页driver.back()# 前进到C语言教程页driver.forward()# 刷新当前页面相当于F5driver.refresh() # 退出/关闭浏览器driver.quit() WebDriver常用方法上文中介绍了如何定位元素,以及如何设置浏览的大小、位置。 定位元素节点只是第一步, 定位之后还需要对这个元素进行操作, 比如单击按钮,或者在输入框输入文本 , 下面介绍 WebDriver 中的最常用方法: # 请求url get(url) # 模拟键盘输入文本 send_keys (value) # 清除已经输入的文本 clear(): # 单击已经定位的元素 click(): # 用于提交表单,比如百度搜索框内输入关键字之后的“回车” 操作 submit(): #返回属性的属性值,返回元素的属性值,可以是id、name、type 或其他任意属性 get_attribute(name) # 返回布尔值,检查元素是否用户可见,比如 display属性为hidden或者none is_displayed() |
|