用Selenium测试javascript生成的html
Test generated html by javascript, with Selenium
New at Selenium (C#).想要自动化一些第三方页面登录。当我手动导航并在chrome F12>"视图元素"中导航时,我看到文本框很好。
<input type="text" id="username" name="username" >
<input type="password" id="password" name="password" >
但是,当我做"查看源代码"时,我没有看到这一点。我假设有Javascript代码生成这个登录表单。
在硒中 - 它当然适用于"查看源代码"版本 - 当我执行以下操作时,我得到 - "没有这样的元素"如预期的那样......
var x = Driver.FindElement(By.Name("username"));
硒是否有可能与动态生成的字段进行交互,就像我的情况一样?比如告诉它"等待"或潜入 html 的动态版本或其他东西?
如果目标元素不在iframe
内,那么使用显式等待应该可以解决问题:
IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3));
IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Id("username")));
另请参阅:Selenium c# Webdriver:等到元素存在
如果元素在 iframe
内,您应该首先切换到它:
IWebElement frame = driver.FindElement(By.Id("my_frame_id"));
driver.SwitchTo().Frame(frame);
另请参阅:使用 Selenium 2 查找嵌套 iFrame
相关文章:
- 来自文本输入null的html javascript变量
- Html/Javascript-如何屏蔽除英国以外的所有欧盟国家,并允许所有非欧盟国家
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- HTML/Javascript表单会自动重置
- html/javascript中的可拖动文本
- 在HTML/JavaScript中减去两个数字
- 基本的HTML Javascript程序.这是怎么回事
- 一个html/javascript'小工具'知道用户何时单击了小部件外的任意位置
- HTML/JavaScript拖动&Drop-是否可以使重影图像*NOT*看起来'冲洗掉'
- 在HTML/Javascript文件中获取App Inventor 2变量值
- HTML/JavaScript表格标题
- 如何修复在浏览器中打开后出现在屏幕上的html/Javascript代码
- 在HTML JavaScript头部分运行Google脚本函数
- 如何在 html/javaScript/Jquery 中“浏览文件夹”
- 带有消息html/javascript的进度条
- 在html/javascript中请求撤消/重做事件
- 使用HTML/Javascript表单使用ActiveXObject创建带有嵌入图像的outlook电子邮件
- 使用html/javascript启动小部件
- 移动html/javascript编程中的变量传递