fvyutk 2024-04-23 14:36 采纳率: 50%
浏览 4

ᅟᅠ        ‌‍‎‏ ᅟᅠ        ‌‍‎‏ ᅟᅠ        ‌‍‎‏ ᅟᅠ        ‌‍‎‏ ᅟᅠ        ‌‍‎‏ ᅟᅠ        ‌‍‎‏ 

sdfhsdfghsghsgfhserhrtjhtyjmfhgbsgfjdhfkdfghsdfhsgfjh

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-23 14:36
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在尝试使用Selenium进行网页自动化测试,并且遇到了在非调试模式下无法正确获取错误信息的问题。根据你的描述,在调试模式下,你能成功地获取到预期的错误信息,但在普通运行模式下却无法得到。这个问题可能是由于页面加载速度不同导致的。

    在调试模式下,程序的执行速度通常会变慢,这样可能会给网页足够的时间去渲染所有的元素,包括错误提示。而在正常运行模式下,由于执行速度快,可能在错误元素加载完成之前你就尝试访问它了。

    为了解决这个问题,你可以增加一些等待时间来确保元素已经完全加载。可以使用time.sleep()函数来实现简单的延迟,或者使用Selenium提供的条件等待方法(比如expected_conditions.presence_of_element_located())来更精确地等待特定元素出现。

    以下是修改后的代码示例,使用了条件等待方法来等待错误信息出现:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    
    url = "https://passport.baidu.com/v2/?reg&tt=1713852487924&overseas=&gid=DD3E780-3D6A-45C4-AF1E-5397276CB0E4&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F"
    driver.get(url)
    
    username_input = driver.find_element(By.XPATH, '/html/body/div[3]/div[3]/div[3]/div[2]/form/p[2]/input[2]')
    username_input.send_keys("abc")
    
    password_input = driver.find_element(By.XPATH, '/html/body/div[3]/div[3]/div[3]/div[2]/form/p[3]/input[2]')
    password_input.send_keys("abc")
    
    # 添加等待,直到错误信息元素出现
    error_element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, '/html/body/div[3]/div[3]/div[3]/div[2]/form/p[2]/span[2]'))
    )
    
    error = error_element.text
    print(error + "1")
    
    if error is None:
        print("为空")
    elif error == "":
        print("为空字符串")
    else:
        print("其他")
    

    这段代码增加了对错误元素的条件等待,确保在尝试获取文本之前,元素已经被加载到了页面上。这样应该就能在正常运行模式下也能获取到错误信息了。如果你仍然遇到问题,请检查浏览器驱动是否是最新的,以及是否存在网络连接问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 5月16日
  • 修改了问题 5月16日
  • 修改了问题 5月16日
  • 修改了问题 5月16日
  • 展开全部

悬赏问题

  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)
  • ¥15 船舶旋回实验matlab
  • ¥30 SQL 数组,游标,递归覆盖原值
  • ¥15 为什么我的数据接收的那么慢呀有没有完整的 hal 库并 代码呀有的话能不能发我一份并且我用 printf 函数显示处理之后的数据,用 debug 就不能运行了呢
  • ¥20 gitlab 中文路径,无法下载
  • ¥15 用动态规划算法均分纸牌
  • ¥30 udp socket,bind 0.0.0.0 ,如何自动选取用户访问的服务器IP来回复数据