Python Selenium常用方法

1.浏览器网页调试

在 Chrome浏览器中,点击鼠标右键,在弹出的快捷菜单中选择“检查”选项;在弹出的调试信息窗口中,点击按钮后,将鼠标移动到需要定位的目标位置,调试信息窗口中就会显示元素的属性。以对百度搜索页面的测试为例,在调试信息窗口中点击[插图]按钮后,将鼠标移动到百度搜索输入框上,屏幕上就会显示元素属性。如图
在这里插入图片描述
百度搜索输入框的元素属性 ID 为 kw,NAME 为wd,CLASS_NAME为s_ipt。
或者进 选项>更多工具>开发者工具
在这里插入图片描述
然后点击指定位置也可

2.元素定位

在Selenium自动化测试中,提供了单个元素定位方式和多个元素定位方式。两种方式都是根据元素属性 ID、NAME、CLASS_NAME、TAG_NAME、CSS_SELECTOR、XPATH、LINK_TEXT、PARTIAL_LINK_TEXT 来进行定位。下面就通过具体的实例说明单个元素定位在UI自动化测试中的应用。
在这里插入图片描述

  • 1.find_element_by_id
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")
driver.find_element_by_id('kw').send_keys('Selenium')
  • 2.find_element_by_name
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")
driver.find_element_by_name('wd').send_keys('Selenium')
  • 3.find_element_by_class_name
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")
driver.find_element_by_class_name('s_ipt').send_keys('Selenium')
  • 4.find_element_by_xpath
    通过XPATH定位百度搜索输入框的元素,方法是find_element_by_xpath,原始属性是//*[@id=”kw”]。获取的方式是定位到百度搜索输入框的元素属性后,用鼠标右键点击该属性,在弹出的快捷菜单中上选择“Copy”选项,在“Copy”子选项中选择“Copy Xpath”选项,如图
    在这里插入图片描述
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('Selenium')
  • 5.find_element_by_link_text
    LINK_TEXT用于对超链接的处理。在HTML的代码中主要是以标签a对应,方法是find_element_by_link_text。以点击百度首页的“新闻”链接为例,查看“新闻”对应的代码:<a href=“http://news.baidu.com” name="tj_trnews"class=“mnav”>新闻。依据代码可以看到它是以 a 标签的。下面实现点击百度首页的“新闻”链接,实现的代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("http://www.baidu.com")
driver.find_element_by_link_text("新闻").click()

猜你喜欢

转载自blog.csdn.net/xuefu_78/article/details/112622304