将文本输入到codemirror python selenium的文本区域

2024-09-29 00:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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,为了完整起见,我发布了它。这是源代码和屏幕截图。在

enter image description here

^{pr2}$

谢谢。在


Tags: 文本browser区域元素by属性源代码selenium
1条回答
网友
1楼 · 发布于 2024-09-29 00:18:31

在Selenium中,WebElement#click()不返回任何内容。如果希望在单击后与element对象进一步交互,则需要先将其保存到变量中。在

但更重要的是,您单击的是<div>,它包含而不是<textarea>本身。即使单击<div>得到<textarea>焦点,元素对象仍然是包含<div>的句柄,它不会对send_keys()做出有意义的反应。如果<textarea>是用户输入文本的地方,则必须找到并与元素进行交互:

textarea = browser.find_element_by_css_selector('.CodeMirror textarea')

(除非<textarea>被禁用并且需要额外的步骤来启用它,否则您不需要click()它就可以开始输入了。)

然后简单地send_keys()给它:

^{pr2}$

相关问题 更多 >