def _js_select_by(self, term, number):
if isinstance(term, re._pattern_type):
js_rx = term.pattern
js_rx = js_rx.replace('\\A', '^', 1)
js_rx = js_rx.replace('\\Z', '$', 1)
js_rx = js_rx.replace('\\z', '$', 1)
js_rx = re.sub(r'\(\?#.+\)', '', js_rx)
js_rx = re.sub(r'\(\?-\w+:', '(', js_rx)
elif type(term) in [six.text_type, six.binary_type]:
js_rx = '^{}$'.format(term)
else:
raise TypeError('expected String or Regexp, got {}'.format(term))
for way in ['text', 'label', 'value']:
self._element_call(lambda: self._execute_js('selectOptions{}'.format(way.capitalize()),
self, js_rx, str(number)))
if self._is_matching_option(way, term):
return self.selected_options[0].text
raise NoValueFoundException('{} not found in select list'.format(term))
评论列表
文章目录