python+selenium2--元素八种基本定位方式
Selenium的八种基本定位方式,但并不是只有这八种
一、通过ID定位
1 from selenium import webdriver 2 import time 3 4 driver = webdriver.Firefox() 5 6 driver.get("http://www.baidu.com") 7 time.sleep(3) 8 #通过元素ID定位 9 #百度首页输入框 id='kw' 10 #<input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd"/> 11 12 driver.find_element_by_id('kw').send_keys('selenium自动化测试') 13 14 #百度一下按钮 id=‘su’ 15 #<input id="su" class="bg s_btn" type="submit" value="百度一下"> 16 driver.find_element_by_id('su').click()
send.keys() 输入框输入字符
click() 鼠标点击事件
二、通过name定位
1 from selenium import webdriver 2 import time 3 4 driver = webdriver.Firefox() 5 driver.get("http://www.baidu.com") 6 time.sleep(3) 7 8 #通过元素name定位 9 #百度首页输入框 name="wd" 10 #<input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd"/> 11 driver.find_element_by_name('wd').send_keys('人生苦短,我用python') 12 13 driver.find_element_by_id('su').click()
三、通过class_name定位
1 from selenium import webdriver 2 import time 3 4 5 driver = webdriver.Firefox() 6 driver.get('http://www.baidu.com') 7 time.sleep(3) 8 #通过元素classs_name定位 9 #百度首页输入框 class='s_ipt' 10 #<input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd"/> 11 12 driver.find_element_by_class_name('s_ipt').send_keys('selenium自动化测试') 13 14 #百度一下按钮 class="bg s_btn",中间有空格,所有是多个,只输入一个就可以了 15 #<input id="su" class="bg s_btn" type="submit" value="百度一下"> 16 driver.find_element_by_class_name('s_btn').click()
四、通过tag_name定位
1 from selenium import webdriver 2 import time 3 4 5 driver = webdriver.Firefox() 6 driver.get('http://www.baidu.com') 7 time.sleep(3) 8 9 #通过元素tag_name定位 10 #百度首页输入框 11 #<input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd"/> 12 13 driver.find_element_by_tag_name('input').send_keys('selenium自动化测试') 14 15 # 这里通过标签定位百度输入框是会报错的,因为页面上input标签有很多个 16 # 一般页面上标签一样的很多,通过标签无法直接定位到某个元素。 17 # 通常用于定位一组元素
五、通过link_text()定位
1 from selenium import webdriver 2 import time 3 4 5 driver = webdriver.Firefox() 6 driver.get('http://www.baidu.com') 7 time.sleep(3) 8 9 #通过link_text定位 10 11 # <a class="mnav c-font-normal c-color-t" target="_blank" href="http://news.baidu.com">新闻</a> 12 13 driver.find_element_by_link_text('新闻').click()
六、通过partial_link_text()定位
1 from selenium import webdriver 2 import time 3 4 5 driver = webdriver.Firefox() 6 driver.get('http://www.baidu.com') 7 time.sleep(3) 8 9 10 #通过partial_link_text()定位 11 #一个很长的文本链接,如‘hao123’,可以截取其中的‘hao1’ 12 #<a class="mnav c-font-normal c-color-t" target="_blank" href="https://www.hao123.com">hao123</a> 13 driver.find_element_by_partial_link_text('hao1').click()
七、通过Xpath语法定位
八、通过Css语法定位