确保使用的 Selenium WebDriver 与浏览器版本兼容。 总结 当使用 By.CSS_SELECTOR 找不到元素时,应首先检查 CSS 选择器的正确性,然后考虑元素是否已加载、是否在 iframe 或 frame 中、是否被遮挡、页面结构是否变化以及浏览器兼容性等因素。通过综合应用上述解决方法,通常可以定位到目标元素。
使用By.CSS_SELECTOR 定位元素示例: fromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy# 创建 WebDriver 实例driver=webdriver.Chrome()# 打开网页driver.get("https://www.example.com")# 通过 CSS 选择器定位元素element=driver.find_element(By.CSS_SELECTOR,"#myElementId") 使用By.TAG_NAME ...
# find_element_by_css_selector 的应用:根据标签(tag)名定位fromseleniumimportwebdriver# 导入 webdriver 模块driver=webdriver.Chrome()# 调用 Chrome 浏览器driver.get('https://www.douban.com/')# 打开豆瓣element=driver.find_element_by_css_selector("a")# 根据 a 标签定位元素print(element.text)# 打...
driver.find_element(By.CSS_SELECTOR,'#s-top-left a') # 简写 # 百度首页地图,以下2种方式皆可 driver.find_element(By.CSS_SELECTOR,'#s-top-left a:nth-child(3)') driver.find_elements(By.CSS_SELECTOR,'#s-top-left a')[2] # a:first-child 第一个标签 driver.find_element(By.CSS_SE...
By.CSS_SELECTOR = 'cssselector' By.XPATH = 'xpath' 用百度搜索框为例,写简化版的定位。 是不是发现,这种写法更方便呢? 定位元素的唯一性 我们在写自动化脚本过程中,会遇到因为元素不是唯一导致定位元素失败的场景,那么我们可以先确定此元素是否唯一,再来定位元素。
Css定位 Selenium极力推荐使用CSS定位,而不是XPath来定位元素,原因是CSS定位比XPath定速度快,语法也更加简洁。 CSS常用定位方法 find_element_by_css_selector() #id id选择器根据id属性来定位元素 .class class选择器,根据class属性值来定位元素 [attribute='value']根据属性来定位元素 ...
在使用find_element_by_css_selector方法之前,首先要了解 CSS 选择器。CSS 选择器允许开发者通过 HTML 元素的类、ID、标签名等属性来选择元素。举例而言: div选中所有的<div>标签。 .className选中所有具有className这个类的元素。 #idName选中具有id为idName的元素。
driver.find_element('css selector', '.soutu-btn').click() time.sleep(3) el = driver.find_element('xpath', '//input[@type="file"]') driver.execute_script('arguments[0].style.visibility=\\'visible\\'', el) el.send_keys(r'C:\\Users\\muji\\Desktop\\avatar.png') ...
1、搜索路径中间的某个节点所在层级有多个该dom节点时,xpath和cssSelector会在多个节点中均搜索后续的节点,如测试1. 2、搜索路径最后一个节点下仍包含该类型的dom节点时,cssSelector会将包含的同名节点也搜索出来,xpath则不会继续向下搜索,只打印搜索路径中的最后一个dom节点,如测试2. ...
xxx.By.cssSelector("input[value='查询']") 具体步骤: 在被测试百度网页中,按照宏哥在5.2中的方法 (1)查找输入框并输入“北京宏哥”,(2)查找“百度一下”按钮,(3)点击“百度一下”按钮。 CSS表达式: (1)*[id="kw"] (2)*[id="su"]