selenium 打开新页面后识别不到xpath

python selenium 做的自动化程序,登录网页,点击导航栏啥的都正常运行了,但打开新页面后就不能识别xpath了

img


这个点击之后就打开新页面

img


打开的新页面就是这个

img


想在这个输入框里输入内容,就报错了

img


这个是报错

img


这个是代码

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7597372
  • 这篇博客也不错, 你可以看下python selenium xpath定位方式
  • 除此之外, 这篇博客: 从小白开始学python-网络爬虫五 (Selenium、xpath、实战:自动搜索)中的 实战:在百度上自动搜索内容代码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    url = 'https://www.baidu.com'
    driver = webdriver.Chrome() # 创建对象
    driver.implicitly_wait(10)  # 设置隐式等待
    driver.get(url)
    tar = driver.find_element_by_xpath('//*[@id="kw"]') # 找到输入框
    tar.click() # 单击
    cont = input("请输入你想要查询的内容:\n")
    tar.send_keys(str(cont)) # 将内容发送到输入框
    tar.send_keys(Keys.ENTER) # 回车进行搜索
    input("Press enter to close the automated browser:\n")
    driver.quit()
    

    当然还可以添加后续代码进行更多的拓展哟!

    赶紧实战起来吧!

    点个赞呗!(卑微)

  • 您还可以看一下 郭宏志老师的Python自动化测试之Selenium课程中的 Selenium使用xpath来定位元素小节, 巩固相关知识点

看一下新开的窗口是不是新开了一个frame,如果是的话新开之后需要切换窗口,可以使用 driver.switch_to.frame(1) 的方式根据ID切换,也可以使用 driver.switch_to.frame("iframe的name属性") 这种方式进行切换。

打开新窗口后需要定位切换到当前窗口
win1 = driver.window_handles[1]
driver.switch_to.window(win1)
print(driver.current_url)