<commit_before>rabird.selenium
---------------

This library is an extension library build on top of selenium.

It provided a bunch features that need in production enviroment but selenium 
have not provide yet or won't provided by design even in future:

- Added force_xxx() series functions to invoke the element directly even the 
  element be covered by other elements. Just as force_click(), force_focus(), 
  etc...
- Added force_get() method to webdriver, it will stop the page loading after 
  page loading timeout exception happen, so that the next script could just 
  run without break by that exception.  
- Provide recursive ability to all functions, it would iterate each frame and
  each window to find your elements and do the actions without switch frame 
  manually, that could reduce a great lot jobs.
  webdriver.is_find_element_recursively to True to enable it.   
- Added ability to set element's attribute
- Provided xpath_find(), xpath_find_all(), etc. For simply invoke xpath for 
  recursively find elements.
- Provided some advance UI class to wrap for some third-parties editors ( Just 
  like TinyMCE )<commit_msg>Fixed detail about recursive ability<commit_after>rabird.selenium
---------------

This library is an extension library build on top of selenium.

It provided a bunch features that need in production enviroment but selenium 
have not provide yet or won't provided by design even in future:

- Added force_xxx() series functions to invoke the element directly even the 
  element be covered by other elements. Just as force_click(), force_focus(), 
  etc...
- Added force_get() method to webdriver, it will stop the page loading after 
  page loading timeout exception happen, so that the next script could just 
  run without break by that exception.  
- Added ability to set element's attribute
- Provided xpath_find(), xpath_find_all(), etc. For simply invoke xpath for 
  recursively find elements. it would iterate each frame and each window to 
  find your elements and do the actions without switch frame manually, that 
  could reduce a great lot jobs.
- Provided some advance UI class to wrap for some third-parties editors ( Just 
  like TinyMCE )
{'fraction_non_alphanumeric': 0.054570259208731244, 'fraction_numerical': 0.0, 'mean_word_length': 3.8351648351648353, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3971342', 'n_tokens_mistral': 567, 'n_tokens_neox': 525, 'n_words': 310}