长枪化剑指长空 2023-02-07 23:54 采纳率: 100%
浏览 45
已结题

selenium没有正确获取当前页面url

最后两个current_url获取到的页面链接不对,是什么哪里不对呢
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver=webdriver.Firefox()
url='https://www.baidu.com/'

driver.get(url)
time.sleep(4)
print(driver.current_url)#打印当前页面URL,正确
print(driver.title)

driver.implicitly_wait(5)
driver.find_element(By.ID,'kw').send_keys("先导入By模块")
driver.find_element(By.ID,'su').click()
time.sleep(4)
print(driver.current_url)#打印当前页面URL 正确
print(driver.title)

# driver.implicitly_wait(5)
driver.find_element(By.LINK_TEXT,"登录").click()
time.sleep(4)
print(driver.current_url)#打印当前页面URL 正确
print(driver.title)

driver.back()

# 10是最长等待时间,0.5是每0.5秒去查询对应的元素,util后面跟的是等待具体条件,EC跟的是判断条件判断元素是否在DOM上
WebDriverWait(driver, 10, 0.5,"超时").until(EC.presence_of_element_located((By.LINK_TEXT, "hao123")),message="")
driver.find_element(By.LINK_TEXT, "hao123").click()
time.sleep(4)
print(driver.current_url)#打印当前页面URL 错误:输出https://www.baidu.com/而不是hao123的链接
print(driver.title)
driver.forward()
time.sleep(4)
print(driver.current_url)#打印当前页面URL 错误:输出的是查询链接
print(driver.title)

driver.close()#关闭当前页面 错误:关闭了查询链接
time.sleep(4)

driver.quit()




  • 写回答

2条回答 默认 最新

  • BaiXuePrincess 2023-02-08 11:45
    关注

    你虽然打开了hao123,但窗口还是操作的第一个,需要切换到新窗口,这样就可以了

    import time
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Firefox()
    url = 'https://www.baidu.com/'
    
    driver.get(url)
    time.sleep(4)
    print(driver.current_url)  # 打印当前页面URL
    print(driver.title)
    
    WebDriverWait(driver, 10, 0.5, "超时").until(EC.presence_of_element_located((By.LINK_TEXT, "hao123")), message="")
    driver.find_element(By.LINK_TEXT, "hao123").click()
    time.sleep(4)
    windows = driver.window_handles
    driver.switch_to.window(windows[-1])
    print(driver.current_url)  # 打印当前页面URL
    print(driver.title)
    
    time.sleep(4)
    driver.quit()
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月18日
  • 已采纳回答 2月10日
  • 创建了问题 2月7日

悬赏问题

  • ¥15 netty整合springboot之后自动重连失效
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击