CS技术大佬 2024-05-11 11:31 采纳率: 0%
浏览 26

selenium如何在提示弹窗中输入内容并显示

问题:
selenium中系统提示弹窗处理没办法显示send_keys方法中送入的参数,求优秀的人才解答如何在提示弹窗中输入内容并显示
详细代码:
html:

<!DOCTYPE html>
<html>
<body>

<p>点击按钮,弹出警告框。</p>
<button onclick="alert('这是一个警告框!')">点击我</button>
<p>点击按钮,弹出确认框。</p>
<button onclick="confirm('你确定吗?')">点击我</button>
<p>点击按钮,弹出提示框。</p>
<input type="button" onclick="prompt('请输入您的名字:')" value="点击我">
<!--<button onclick="prompt('请输入您的名字hahah:')">点击我</button>-->

</body>
</html>

python:

from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

driver=webdriver.Chrome()
driver.get('file:///F:/study_%E5%BC%B9%E6%A1%86.html')
# 点击提示框
element3=driver.find_element(By.XPATH,'/html/body/input')
element3.click()
sleep(5)
# 实例化弹窗对象
alert3=driver.switch_to.alert
# 获取弹窗信息
print(f'弹窗信息是:{alert3.text}')
# 在弹窗中输入数据
alert3.send_keys('我一定能拿到基本工资+年终+单边公积金20000的offer')
sleep(5)
# 点击确定
alert3.accept()
sleep(5)

  • 写回答

4条回答 默认 最新

  • 笑面虎 2024-05-11 11:31
    关注

    以下内容由CHATGPT及笑面虎共同生成、有用望采纳:


    【您想要解决的问题】:您的目的是要解决在使用Selenium进行自动化测试时,如何在JavaScript生成的提示弹窗(prompt)中输入文本并使输入显示的问题。

    【问题出现原因】:在Selenium中,当页面触发JavaScript生成的弹窗(如alert、confirm或prompt)时,Selenium会自动暂停当前的代码执行,直到您与弹窗交互。在您提供的代码中,您已经正确地定位到了提示弹窗,但是在输入文本后,没有正确地将焦点从弹窗移回页面,导致输入的文本没有显示。

    【问题解决方案】:为了解决这个问题,您需要在输入文本后调用alert3.accept()来关闭弹窗,并且确保弹窗关闭后页面可以正确接收到输入的文本。

    【提供代码】:以下是修改后的代码,它应该能够允许您在提示弹窗中输入文本,并关闭弹窗后继续执行:

    from time import sleep
    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.get('file:///F:/study_%E5%BC%B9%E6%A1%86.html')
    
    # 点击提示框
    element3=driver.find_element(By.XPATH,'/html/body/input')
    element3.click()
    
    # 等待弹窗出现
    alert3 = WebDriverWait(driver, 10).until(
        EC.alert_is_present()
    )
    
    # 获取弹窗信息
    print(f'弹窗信息是:{alert3.text}')
    
    # 在弹窗中输入数据
    alert3.send_keys('我一定能拿到基本工资+年终+单边公积金20000的offer')
    
    # 点击确定关闭弹窗
    alert3.accept()
    
    # 可以添加一些等待时间或等待页面加载完成的条件
    # sleep(5)
    

    【代码运行方式】:您需要确保您的计算机上安装了Selenium库和对应的WebDriver(如ChromeDriver)。您还需要将代码中的HTML文件路径替换为实际的文件路径。运行代码前,请确保Chrome浏览器已经安装。

    【代码预期运行结果】:代码将打开指定的HTML页面,点击按钮触发提示弹窗,然后在弹窗中输入指定的文本,并点击确定关闭弹窗。页面将接收到输入的文本。

    【推荐相关链接】:

    • Selenium官方文档:https://www.selenium.dev/documentation/en/
    • WebDriver支持的浏览器:https://www.selenium.dev/documentation/en/webdriver/driver_requirements/
    • Python官方文档:https://docs.python.org/3/
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月11日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真