c# - Selenium 无法访问网页上的任何元素
问题描述
我正在使用 Specflow 和 Nunit 在 C# 中为我正在处理的一个新项目编写 Selenium 测试,并且在body
任何地方都无法选择其中的任何内容
我可以访问身体
WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("body")));
但 不能进行以下工作和 throe element not found 异常:
WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("halo-root")));
WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("halo-entry")));`
WaitUntil(SeleniumExtras.WaitHelpers.ExpectedConditions.ElementIsVisible(By.CssSelector("halo-navigation-container")));
ETC
错误:没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:“halo-root”}
- 没有 iframe
- 我已经尝试过长时间等待以确保它没有异步
- 该网站是 angular.js (我尝试了一些量角器方法但没有成功)
- 我也玩过机智
ElementIsVisible
等ElementIsClickable
- 我尝试了不同的选择器(id、className、xpath 等)
所有帮助表示赞赏
ps 无法共享整个 SUT,因为它需要 vpn 访问。
解决方案
首先检查您的html。我认为 body 标签必须存在于iframe中。如果它存在于 iframe 中,请先切换到 iframe,然后尝试对元素执行任何命令(等待或操作)。
推荐阅读
- python - SQL Server python从服务器a到服务器b - 查询服务器a,插入服务器b
- jquery - 如何在 JQuery 中将类添加到表行并在重新加载后保存
- pandas - 具有正确字符分隔符和正确编码方式的 Python Pandas read_csv
- javascript - 如何在我的 vuejs 项目中使用 markdown?
- java - 如何在复杂项目中包含属性文件
- php - 引导模式正在插入和更新数据库,问题是引导警报不起作用
- laravel - 尝试多个模型错误的问题
- http - queryParams 和 content-type 的区别:applciation/x-www-form-urlencoded
- shell - shell 命令中的“$it”是什么?
- html - 当您从建议下拉菜单中选择时,输入文本的颜色会发生变化