c# - 无法通过 Id 或 XPath 找到输入元素
问题描述
Selenium 无法使用Id
选择器或XPath
选择器找到输入字段。
我试图搜索它是否是隐藏的div
或body
webDriver.FindElement(By.XPath("//*[@id='64inputText']")).SendKeys(cnpj);
webDriver.FindElement(By.Id("64inputText")).SendKeys(cnpj);
这是源代码:
<input id="64inputText" name="64inputText" type="text" class="form-control pd-input-size ng-valid-pattern ng-valid-minlength ng-valid-maxlength ng-valid-cpf ng-valid-cnpj ng-not-empty ng-dirty ng-valid-parse ng-valid ng-valid-required ng-touched" ng-model="ngModel" ng-required="ngRequired" ng-change="onChange($event)" ng-blur="onBlur($event)" ng-cut="naoPermitirCortar === true ? $event.preventDefault() : ngCut()" ng-copy="naoPermitirCopiar === true ? $event.preventDefault() : ngCopy()" ng-paste="naoPermitirColar === true ? $event.preventDefault() : ngPaste()" ng-disabled="ngDisabled" ng-readonly="ngReadonly" placeholder="" maxlength="500" minlength="" pd-maiusculo="::maiusculo" required="required" aria-invalid="false" style="">
和链接。
解决方案
这是您必须使用的逻辑。
# switch to the first iframe
driver.switch_to.frame(driver.find_elements_by_xpath("//iframe")[0])
# then interact with the field (Make sure you enter only numeric in this field)
driver.find_element_by_xpath("//input[@id='61inputText']").send_keys("12345678901")
# Don't forget to switch to parent window once you are done with actions on iframe using below
driver.switch_to.default_content()
推荐阅读
- java - 使用 Javassist 修改后检测加载的类
- c++ - UDP 服务器每 5 秒重启一次
- python - 如果并行运行,FiPy 中的 mesh1D.py 示例将失败
- c++11 - 宽松的原子和重新排序缓冲区
- tensorflow - Faster Rcnn Box Coder 中比例因子的用途是什么?
- html - 允许垂直滚动(不要剪切内容)
- powershell - Get user's AD role without using Remote Server Administration Tools
- c# - C#.NET Web API 2,如何使用 HTTPGET 异步方法上的 HttpContent 从网站中提取特定文本?
- speech-to-text - 在谷歌的语音转文字直播中,如果用户不说话,谷歌会向我收费吗?
- reactjs - 'dispatch' 未定义 - mapDispatchToProps 未通过路由器