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)

运行结果:

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

相关推荐
半个俗人43 分钟前
05postman关联-常用的数据提取方式
测试工具·jmeter·postman·js
123过去3 小时前
ike-scan使用教程
linux·测试工具
半个俗人3 小时前
07.postman newman生成测试报告
测试工具·postman
爱敲代码的菜菜14 小时前
【测试】自动化测试
css·selenium·测试工具·junit·自动化·xpath
123过去1 天前
wireshark使用教程
linux·网络·测试工具·wireshark
123过去1 天前
hexinject使用教程
linux·网络·测试工具
测试19981 天前
功能测试、自动化测试、性能测试的区别?
自动化测试·软件测试·python·功能测试·测试工具·性能测试·安全性测试
爱敲代码的菜菜1 天前
【测试】Selenium
selenium·测试工具·xpath·webdriver·cssselector
shughui2 天前
Fiddler下载、安装、使用、汉化,详细图文教程(2026附安装包)
前端·测试工具·fiddler