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

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条回答 默认 最新

  • 柳絮吹成雪 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 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里