我对selenium不太熟悉,正在尝试将文本输入到CodeMirror生成的textarea中。我已经看过文本区的其他问题,无法解决我的问题。在
我使用的是Chrome,在源代码中找到了文本区域,并且可以单击它使光标闪烁。但是,我发现它没有属性。如何将文本输入文本区域?我尝试了其他元素,我得到了“无法聚焦”或“不可见”错误,我猜这意味着这些元素不是文本区域。在
a= browser.find_element_by_css_selector('div.CodeMirror.CodeMirror-wrap.dojoDndTarget.cm-s-sql.dojoDndContainer').click()
print a
None
我意识到添加一个很长的源代码对其他用户来说可能不方便,但是我不确定哪个codemorr行可能引用textarea,为了完整起见,我发布了它。这是源代码和屏幕截图。在
^{pr2}$谢谢。在
在Selenium中,
WebElement#click()
不返回任何内容。如果希望在单击后与element对象进一步交互,则需要先将其保存到变量中。在但更重要的是,您单击的是
<div>
,它包含而不是<textarea>
本身。即使单击<div>
得到<textarea>
焦点,元素对象仍然是包含<div>
的句柄,它不会对send_keys()
做出有意义的反应。如果<textarea>
是用户输入文本的地方,则必须找到并与元素进行交互:(除非
<textarea>
被禁用并且需要额外的步骤来启用它,否则您不需要click()
它就可以开始输入了。)然后简单地
^{pr2}$send_keys()
给它:相关问题 更多 >
编程相关推荐