from selenium import webdriver from time import sleep ''' 元素定位方式 id定位 根据id属性定位 name定位 根据name属性定位 class定位 根据class属性定位 --- 一般用于定位多个元素 tag_name(元素名)定位 根据元素名进行定位--- 一般用于定位多个元素 link_text 根据超链接元素的文本进行定位,必须完全匹配 partial_link_text 根据超链接元素的文本进行定位,模糊匹配 xpath 根据元素的路径进行定位,包括绝对路径和相对路径 css定位 根据元素的样式进行定位 ''' driver = webdriver.Chrome() driver.get("https://www.baidu.com/") '''定位单个元素''' # 根据id定位元素 # input = driver.find_element_by_id('kw') # 根据name定位元素 # input = driver.findname('wd') # 根据class定位 # input = driver.find_element_by_class_name("s_ipt") # 写入文本 # input.send_keys('货拉拉') # 根据id定位“百度一下” # btn = driver.find_element_by_id('su') # 根据class进行定位 # btn = driver.find_element_by_class_name('s_btn') # 单击“百度一下” # btn.click() # sleep(3) # 定位“新闻” # driver.find_element_by_link_text('新闻').click() # 定位“直播” driver.find_element_by_partial_link_text("直").click() '''定位多个元素''' # find_elements_by_xxx 返回的是一个列表,如果没有合适的元素返回一个空列表 # inputs = driver.find_elements_by_tag_name('input') # print(inputs) ''' 元素定位方式 xpath ''' from selenium import webdriver from time import sleep try: driver = webdriver.Chrome() driver.get('https://www.baidu.com/') # 定位搜索框 ''' 绝对路径 以/开始 ''' # driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input').send_keys('货拉拉') ''' 相对路径 以//开始''' # @ 表示属性 # * 通配符,表示任意元素 # driver.find_element_by_xpath('//input[@id="kw"]').send_keys('货拉拉') # driver.find_element_by_xpath('//form[@id="form"]/span[1]/input').send_keys('货拉拉') ''' 可以同时使用多个属性进行定位''' driver.find_element_by_xpath('//input[@class="s_ipt" and @autocomplete="off"]').send_keys('货拉拉') # driver.find_element_by_xpath('//input[@id="su"]').click() driver.find_element_by_xpath('//form[@id="form"]/span[2]/input').click() except Exception as e: print(e) finally: sleep(3) driver.close()
from selenium import webdriver from time import sleep ''' xpath定位 ''' try: driver = webdriver.Chrome() driver.get('https://www.baidu.com') ''' 文本定位-精确匹配 文本是位于开始标签和结束标签之间的文字 ''' # 定位贴吧 - 精确匹配 # driver.find_element_by_xpath('//a[text()="贴吧"]').click() # 定位 设置 # driver.find_element_by_xpath('//span[text()="设置"]').click() ''' 文本定位-模糊匹配 ''' # 定位 百度热榜 # driver.find_element_by_xpath('//*[contains(text(),"度热榜")]').click() ''' 属性定位-模糊匹配 ''' driver.find_element_by_id('kw').send_keys('货拉拉') # driver.find_element_by_xpath('//input[@value="百度一下"]').click() # 精确匹配 driver.find_element_by_xpath('//input[contains(@value,"一下")]').click() except Exception as e: print(e) finally: sleep(3) # 关闭当前浏览器窗口 # driver.close() # 退出浏览器 driver.quit() from selenium import webdriver from time import sleep try: driver = webdriver.Chrome() driver.get('https://www.baidu.com') # driver.find_element_by_xpath('//*[@id="kw"]').send_keys('货拉拉') driver.find_element_by_css_selector('#kw').send_keys('货拉拉') except Exception as e: print(e) finally: sleep(3) driver.quit()
|