selenium对于页面改变的定位元素处理办法

在学习selenimu中,总是发现元素定位不到,想了各种办法,最后总结大致有两个原因。

1.等待时间不够,页面还没有完全渲染就进行操作,使用time模块进行等待。

2.换了页面后,发现定位不到元素,因为浏览器还停留在最开始的页面,处理办法,加一行代码。

复制代码
browser.switch_to.window(browser.window_handles[-1])定位到最新打开窗口
复制代码
browser.switch_to.window(browser.window_handles[-2])定位到倒数第二个窗口
复制代码
browser.switch_to.window(browser.window_handles[0])定位到最开始页面
python 复制代码
from selenium import webdriver
import time
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)

url = 'https://www.lagou.com/wn/'
browser.get(url)
time.sleep(5)
browser.find_element_by_id('search_input').send_keys('python')
time.sleep(2)
button = browser.find_element_by_id('search_button')
button.click()

browser.switch_to.window(browser.window_handles[-1])
time.sleep(2)
a = browser.find_elements_by_css_selector('#jobList .list__YibNq .item__10RTO')
print(a)
for li in a:
    c = li.find_element_by_css_selector('#openWinPostion').text
    d = li.find_element_by_css_selector('.money__3Lkgq').text
    h = li.find_element_by_css_selector('.p-bom__JlNur').text
    g = li.find_element_by_css_selector('.company-name__2-SjF').text
    print(c,h,g)

运行结果:

缺少那一行代码的话,结果为:

相关推荐
金玉满堂@bj2 小时前
《Playwright:微软的自动化测试工具详解》
测试工具·microsoft·自动化
测试者家园5 小时前
接口测试不再难:智能体自动生成 Postman 集合
软件测试·人工智能·测试工具·postman·agent·智能化测试·测试开发和测试
不念霉运7 小时前
关键领域软件测试新范式:如何在安全合规前提下提升效率?
软件测试·测试工具·安全·开源·desecvops·ci/di
夏日玲子14 小时前
Selenium工作原理
selenium·测试工具
风掣长空15 小时前
[软件测试]:什么是自动化测试?selenium+webdriver-manager的安装,实现你的第一个脚本
selenium·测试工具
q567315231 天前
Java使用Selenium反爬虫优化方案
java·开发语言·分布式·爬虫·selenium
勤奋的知更鸟1 天前
Java性能测试工具列举
java·开发语言·测试工具
测试老哥2 天前
Postman参数化详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·postman
王磊鑫2 天前
软件测试全攻略:Postman工具的使用
测试工具·postman
江梦寻2 天前
最新Chrome与Selenium完美兼容指南(含驱动下载与配置)
前端·chrome·selenium·测试工具·edge·edge浏览器