selenium4.0 入门案例_selenium 4.0 使用
from selenium import webdriverimport time#创建webdriver对象,把驱动放置到了系统环境变量中,可不带参数创建# driver =webdriver.Firefox()driver = webdriver.Chrome()#使用浏览器打开指定页面driver.get(\'http://www.baidu.com\')time.sleep(5)#回收资源,关闭浏览器driver.quit()
定位元素:4.0和之前的有区别,需要先导入by包
from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time#创建webdriver对象,把驱动放置到了系统环境变量中,可不带参数创建# driver =webdriver.Firefox()driver = webdriver.Chrome()#使用浏览器打开指定页面driver.get(\'http://www.baidu.com\')#定位元素driver.find_element(By.ID, \'kw\').send_keys(\"书包\")driver.find_element(By.ID, \'su\').click()time.sleep(5)#回收资源,关闭浏览器driver.quit()
css选择器的方式
https://www.w3school.com.cn/cssref/css_selectors.asp
通过XPATH定位
用右击copy,复制xpath容易有冗余,一旦后期变化不好更改
可以使用插件
或者用F12,点击elements后,输入Ctrl+f
在选择最佳定位方式时,通常遵循以下原则:
- 首选ID定位,因为ID是唯一的且定位速度快。
- 如果没有ID,则考虑使用Name或CSS选择器定位。
- XPath定位虽然功能强大,但使用时需谨慎,避免因为页面结构变化而导致定位失败。
- 尽量避免使用Tag Name定位,因为找到的元素可能不唯一
//*[@aria-label=\"百度热搜\"]
在代码里敲要把双引号变成单引号
from selenium import webdriverfrom selenium.webdriver.common.by import Byimport time#创建webdriver对象,把驱动放置到了系统环境变量中,可不带参数创建# driver =webdriver.Firefox()driver = webdriver.Chrome()#使用浏览器打开指定页面driver.get(\'http://www.baidu.com\')#定位元素# driver.find_element(By.ID, \'kw\').send_keys(\"书包\")# driver.find_element(By.ID, \'su\').click()#定位链接# driver.find_element(By.LINK_TEXT,\'hao123\').click()driver.find_element(By.XPATH,\"//*[@aria-label=\'百度热搜\']\").click()time.sleep(5)#回收资源,关闭浏览器driver.quit()
- 确保XPath表达式正确无误,因为错误的表达式会导致元素定位失败。
- 使用相对而非绝对的XPath表达式,以增加代码的健壮性和可维护性。例如,避免使用基于索引的表达式(如
//div[1]/p
),除非绝对必要,因为页面结构的变化可能会导致索引失效。 - 在使用文本内容进行定位时,要考虑到文本可能包含子元素、空格或换行符的情况,这些都会影响XPath表达式的准确性。
//input[@name=\'username\']
:这表示查找任何名为input
的元素,其name
属性值为username
。//
表示在整个文档中搜索,不限于特定层级。