@@ -1058,18 +1058,25 @@ def convert_to_css_selector(self, selector, by):
1058
1058
1059
1059
def set_value (self , selector , new_value , by = By .CSS_SELECTOR ,
1060
1060
timeout = settings .LARGE_TIMEOUT ):
1061
- """ This method uses jQuery to update a text field. """
1061
+ """ This method uses jQuery to update a text field.
1062
+ Similar to jquery_update_text_value(), but the element
1063
+ doesn't need to be officially visible to work. """
1062
1064
if self .timeout_multiplier and timeout == settings .LARGE_TIMEOUT :
1063
1065
timeout = self ._get_new_timeout (timeout )
1064
1066
if page_utils .is_xpath_selector (selector ):
1065
1067
by = By .XPATH
1068
+ orginal_selector = selector
1066
1069
selector = self .convert_to_css_selector (selector , by = by )
1067
1070
self ._demo_mode_highlight_if_active (selector , by )
1068
1071
self .scroll_to (selector , by = by , timeout = timeout )
1069
1072
value = json .dumps (new_value )
1070
1073
selector = self ._make_css_match_first_element_only (selector )
1071
1074
set_value_script = """jQuery('%s').val(%s)""" % (selector , value )
1072
1075
self .safe_execute_script (set_value_script )
1076
+ if new_value .endswith ('\n ' ):
1077
+ element = self .wait_for_element_present (
1078
+ orginal_selector , by = by , timeout = timeout )
1079
+ element .send_keys (Keys .RETURN )
1073
1080
self ._demo_mode_pause_if_active ()
1074
1081
1075
1082
def jquery_update_text_value (self , selector , new_value , by = By .CSS_SELECTOR ,
0 commit comments