【问题标题】:Python + Selenium sendkeys on AngularJSAngularJS 上的 Python + Selenium 发送键
【发布时间】:2018-04-24 13:28:04
【问题描述】:

我一直尝试在一个元素上使用 sendkeys,但它一直说:"selenium.common.exceptions.ElementNotInteractableException: Message: Element is not visible"

HTML 代码是:

<input class="form-control inspectletIgnore ng-pristine ng-untouched ng-valid-email-not-match ng-empty ng-valid-email ng-invalid ng-invalid-required" id="email" ng-disabled="ad.isEditMode" required="" name="Email" ng-model="ad.Email.value" type="email">

我尝试通过不同的 XPath 定位元素:

//*[@id="email"] | //input[@ng-model = 'ad.Email.value']

也尝试过使用JavaScript:

document.getElementById('email').value='mail@mail.com'

他们都没有工作。任何建议如何处理?真是头疼啊……

【问题讨论】:

  • 您使用的是哪种语言?
  • 我正在使用 Python。
  • 试试print(len(driver.find_elements_by_id("email")))。是1吗?
  • 嗯,不是 1,而是 2

标签: javascript python angularjs selenium xpath


【解决方案1】:

页面上似乎有 2 个授权表格 - 第一个是隐藏的。处理可见输入尝试:

driver.find_elements_by_id("email")[1]

另外,如果隐藏的表单会在一段时间后被移除,使用起来可能会更好

driver.find_elements_by_id("email")[-1]

【讨论】:

  • browser.find_element_by_id('email')[1].send_keys('blabla@blabla.com') TypeError: 'FirefoxWebElement' object does not support indexing 我该如何解决这个问题?
  • browser.find_elements_by_id('email')[1].send_keys('blabla@blabla.com')
猜你喜欢
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
  • 2018-06-10
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多