我想使用 selenium 来单击文本框,但出现错误。 这是一个日期选择器,当我点击这个文本框时,应该会出现弹出日历。
我使用了这个代码。
driver.find_element_by_xpath("""//*[@id="startDt"]""").click()
答案 0 :(得分:1)
而不是这个:
driver.find_element_by_xpath("""//*[@id="startDt"]""").click()
使用这个:
driver.find_element_by_id("startDt").click()
除了检查Iframe,如果元素在框架内,首先切换到框架,然后你可以与输入标签进行交互
答案 1 :(得分:0)
1)转到您的浏览器 -> 手动打开应用程序
2)打开检查器窗口(即按键盘上的功能键 f12)
3)转到控制台选项卡,输入如下内容并点击回车:
$x("//*[@id='startDt']");
4)如果在控制台中标识了元素并且计数为 1,那么您的定位器是正确的,但在 Selenium 中您会得到 NoSuchElementException, 那么您尝试定位的元素很有可能在 Iframe 内。如果是这样,找出Iframe并切换到它,然后尝试调用findElement方法,它应该可以工作。
5)如果该元素未在控制台中标识,那么您使用的 xpath 的元素不存在/您的 xpath 是错误的。
您可以参考 [link][1] 了解有关评估和验证您的 xpath 过程的更多信息
[1]: https://yizeng.me/2014/03/23/evaluate-and-validate-xpath-css-selectors-in-chrome-developer-tools/#:~:text=From%20Console%20panel,%22)%20to%20evaluate%20and%20validate。