Python + Selenium Automation - eight methods of positioning of page elements

Python + Selenium Automation - eight methods of positioning of page elements

 

Benpian text mainly focus on learning methods selenium positioning of page elements to Baidu home page as an example.

0. element positioning method are:

  • Location id: find_element_by_id ( '')
  • Location name: find_element_by_name ( '')
  • class定位:find_element_by_class_name(' ')
  • Location tag: find_element_by_tag_name ( '')
  • link Location: find_element_by_link_text ( '')
  • partial link定位:find_element_by_partial_link_text(' ')
  • xpath Location: find_element_by_xpath ( '')
  • CSS positioning: find_element_by_css_selector ( '')
  • By positioning

1. Use ID targeting elements

from selenium import webdriver
# 设置浏览器
browser = webdriver.Chrome()
#设置浏览器大小:全屏
browser.maximize_window()
#打开百度首页
browser.get('https://www.baidu.com/')
#定位百度搜索输入框之前,先分析下它的html结构
#<input type="text" class="s_ipt nobg_s_fm_hover" name="wd" id="kw" maxlength="100" autocomplete="off">
#发现它的 id="kw" ,接下来我们就通过id进行定位
try:
    browser.find_element_by_id('kw').send_keys('哈哈')
    print('test post:id')
except Exception as e:
    print('test fail')

#输出内容:test post:id

2. Use positioning element name

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
#搜索框的html结构:<input type="text" class="s_ipt nobg_s_fm_hover" name="wd" id="kw" maxlength="100" autocomplete="off">
# 根据name属性定位
try:
    browser.find_element_by_name('wd').send_keys('哈哈')
    print('test post:name')
except Exception as e:
    print('test fail')

#输出内容:test post:name

3. The use of positioning elements class

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
#搜索框的html结构:<input type="text" class="s_ipt nobg_s_fm_hover" name="wd" id="kw" maxlength="100" autocomplete="off">
# 根据class_name属性定位
try:
    browser.find_element_by_class_name('s_ipt').send_keys('哈哈')
    print('test post:class_name')
except Exception as e:
    print('test fail')

#输出内容:test post:class_name

4. The use of positioning elements tag_name

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
#搜索框的html结构:<input type="text" class="s_ipt nobg_s_fm_hover" name="wd" id="kw" maxlength="100" autocomplete="off">
# 根据tag_name属性定位
try:
    browser.find_element_by_tag_name('form')
    print('test post:tag_name')
except Exception as e:
    print('test fail')

#输出内容:test post:tag_name
  • link_text: According to the above text links to jump to position elements.
from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
# 根据link_text属性定位元素“新闻”,然后点击按钮
try:
    browser.find_element_by_link_text('新闻').click()
    print('test post:tag_name')
except Exception as e:
    print('test fail')

#输出内容:test post:link_text
  • And positioning elements is nearly link_text, partial_link_text is to locate the elements by some of the fields in the text message.
from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
# 根据partial_link_text属性定位元素“新闻”,然后点击按钮
try:
    browser.find_element_by_partial_link_text('闻').click()
    print('test post:tag_name')
except Exception as e:
    print('test fail')

#输出内容:test post:partial_link_text

7. The use of positioning elements xpath

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
# 根据xpath定位元素
try:
    browser.find_element_by_xpath('//*[@id="kw"]').send_keys('哈哈')
    print('test post:xpath')
except Exception as e:
    print('test fail')

#输出内容:test post:xpath

8. Use CSS positioning of page elements

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
# 根据css_selector定位元素
try:
    browser.find_element_by_css_selector('#kw').send_keys('哈哈')
    print('test post:xpath')
except Exception as e:
    print('test fail')

#输出内容:test post:css_selector

9.By positioning

  • In addition to using the above method, find_element may also be utilized () method to locate the element by By.
  • By class needs to be imported before use:
#导入By类
from selenium.webdriver.common.by import By
  • Then the above method can also be rewritten as:
browser.find_element(By.ID,'kw')
browser.find_element(By.NAME,'wd')
browser.find_element(By.CLASS_NAME,'s_ipt')
browser.find_element(By.TAG_NAME,'form')
browser.find_element(By.LINK_TEXT,'新闻')
browser.find_element(By.PARTIAL_LINK_TEXT,'闻')
browser.find_element(By.XPATH,'//*[@id="kw"]')
browser.find_element(By.CSS_SELECTOR,'#kw')
 

Benpian text mainly focus on learning methods selenium positioning of page elements to Baidu home page as an example.

0. element positioning method are:

  • Location id: find_element_by_id ( '')
  • Location name: find_element_by_name ( '')
  • class定位:find_element_by_class_name(' ')
  • Location tag: find_element_by_tag_name ( '')
  • link Location: find_element_by_link_text ( '')
  • partial link定位:find_element_by_partial_link_text(' ')
  • xpath Location: find_element_by_xpath ( '')
  • CSS positioning: find_element_by_css_selector ( '')
  • By positioning

1. Use ID targeting elements

from selenium import webdriver
# 设置浏览器
browser = webdriver.Chrome()
#设置浏览器大小:全屏
browser.maximize_window()
#打开百度首页
browser.get('https://www.baidu.com/')
#定位百度搜索输入框之前,先分析下它的html结构
#<input type="text" class="s_ipt nobg_s_fm_hover" name="wd" id="kw" maxlength="100" autocomplete="off">
#发现它的 id="kw" ,接下来我们就通过id进行定位
try:
    browser.find_element_by_id('kw').send_keys('哈哈')
    print('test post:id')
except Exception as e:
    print('test fail')

#输出内容:test post:id

2. Use positioning element name

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
#搜索框的html结构:<input type="text" class="s_ipt nobg_s_fm_hover" name="wd" id="kw" maxlength="100" autocomplete="off">
# 根据name属性定位
try:
    browser.find_element_by_name('wd').send_keys('哈哈')
    print('test post:name')
except Exception as e:
    print('test fail')

#输出内容:test post:name

3. The use of positioning elements class

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
#搜索框的html结构:<input type="text" class="s_ipt nobg_s_fm_hover" name="wd" id="kw" maxlength="100" autocomplete="off">
# 根据class_name属性定位
try:
    browser.find_element_by_class_name('s_ipt').send_keys('哈哈')
    print('test post:class_name')
except Exception as e:
    print('test fail')

#输出内容:test post:class_name

4. The use of positioning elements tag_name

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
#搜索框的html结构:<input type="text" class="s_ipt nobg_s_fm_hover" name="wd" id="kw" maxlength="100" autocomplete="off">
# 根据tag_name属性定位
try:
    browser.find_element_by_tag_name('form')
    print('test post:tag_name')
except Exception as e:
    print('test fail')

#输出内容:test post:tag_name
  • link_text: According to the above text links to jump to position elements.
from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
# 根据link_text属性定位元素“新闻”,然后点击按钮
try:
    browser.find_element_by_link_text('新闻').click()
    print('test post:tag_name')
except Exception as e:
    print('test fail')

#输出内容:test post:link_text
  • And positioning elements is nearly link_text, partial_link_text is to locate the elements by some of the fields in the text message.
from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
# 根据partial_link_text属性定位元素“新闻”,然后点击按钮
try:
    browser.find_element_by_partial_link_text('闻').click()
    print('test post:tag_name')
except Exception as e:
    print('test fail')

#输出内容:test post:partial_link_text

7. The use of positioning elements xpath

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
# 根据xpath定位元素
try:
    browser.find_element_by_xpath('//*[@id="kw"]').send_keys('哈哈')
    print('test post:xpath')
except Exception as e:
    print('test fail')

#输出内容:test post:xpath

8. Use CSS positioning of page elements

from selenium import webdriver
browser = webdriver.Chrome()
browser.maximize_window()

#打开百度首页
browser.get('https://www.baidu.com/')
# 根据css_selector定位元素
try:
    browser.find_element_by_css_selector('#kw').send_keys('哈哈')
    print('test post:xpath')
except Exception as e:
    print('test fail')

#输出内容:test post:css_selector

9.By positioning

  • In addition to using the above method, find_element may also be utilized () method to locate the element by By.
  • By class needs to be imported before use:
#导入By类
from selenium.webdriver.common.by import By
  • Then the above method can also be rewritten as:
browser.find_element(By.ID,'kw')
browser.find_element(By.NAME,'wd')
browser.find_element(By.CLASS_NAME,'s_ipt')
browser.find_element(By.TAG_NAME,'form')
browser.find_element(By.LINK_TEXT,'新闻')
browser.find_element(By.PARTIAL_LINK_TEXT,'闻')
browser.find_element(By.XPATH,'//*[@id="kw"]')
browser.find_element(By.CSS_SELECTOR,'#kw')

Guess you like

Origin www.cnblogs.com/xiao-xue-di/p/11531884.html