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])定位到最开始页面
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)

运行结果:

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

相关推荐

  1. 算法——矩阵:对于边界元素处理

    2024-01-08 22:58:04       44 阅读
  2. selenium无法定位元素问题

    2024-01-08 22:58:04       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 22:58:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 22:58:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 22:58:04       82 阅读
  4. Python语言-面向对象

    2024-01-08 22:58:04       91 阅读

热门阅读

  1. 一道经典的柯里化面试题

    2024-01-08 22:58:04       54 阅读
  2. 如何防护零日攻击

    2024-01-08 22:58:04       69 阅读
  3. 无缝衔接,完美对接:探索系统对接的最佳实践

    2024-01-08 22:58:04       52 阅读
  4. k8s-master增加和删除污点

    2024-01-08 22:58:04       55 阅读
  5. 开启鸿蒙开发探索之旅

    2024-01-08 22:58:04       57 阅读
  6. python爬虫

    2024-01-08 22:58:04       65 阅读
  7. Linux常用命令大全<二>

    2024-01-08 22:58:04       60 阅读