File tree Expand file tree Collapse file tree 1 file changed +28
-0
lines changed
cpp/iedriver/CommandHandlers Expand file tree Collapse file tree 1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change @@ -871,6 +871,34 @@ bool SendKeysCommandHandler::SetInsertionPoint(IHTMLElement* element) {
871
871
hr = element->QueryInterface <IHTMLTextAreaElement>(&text_area_element);
872
872
if (SUCCEEDED (hr) && text_area_element) {
873
873
text_area_element->createTextRange (&range);
874
+ } else {
875
+ CComPtr<IHTMLElement3> element3;
876
+ element->QueryInterface <IHTMLElement3>(&element3);
877
+ VARIANT_BOOL is_content_editable_variant = VARIANT_FALSE;
878
+ if (element3) {
879
+ element3->get_isContentEditable (&is_content_editable_variant);
880
+ }
881
+ bool is_content_editable = is_content_editable_variant == VARIANT_TRUE;
882
+ if (is_content_editable) {
883
+ CComPtr<IDispatch> dispatch;
884
+ hr = element->get_document (&dispatch);
885
+ if (dispatch) {
886
+ CComPtr<IHTMLDocument2> doc;
887
+ hr = dispatch->QueryInterface <IHTMLDocument2>(&doc);
888
+ if (doc) {
889
+ CComPtr<IHTMLElement> body;
890
+ hr = doc->get_body (&body);
891
+ if (body) {
892
+ CComPtr<IHTMLBodyElement> body_element;
893
+ hr = body->QueryInterface <IHTMLBodyElement>(&body_element);
894
+ if (body_element) {
895
+ hr = body_element->createTextRange (&range);
896
+ range->moveToElementText (element);
897
+ }
898
+ }
899
+ }
900
+ }
901
+ }
874
902
}
875
903
}
876
904
You can’t perform that action at this time.
0 commit comments