def login(automator,at_home=False): if not at_home: go_to_wp_home(automator) user, pwd = automator.config.get_user_option_value("wp.users.admin").split_as_str_list() # Login automator.element(With.id("user_login")).set_text(user) automator.element(With.id("user_pass")).set_text(pwd) automator.element(With.id("wp-submit")).click() automator.element(With.class_name("welcome-view-site")).wait_until_visible()
from arjuna.tpi import Arjuna from arjuna.tpi.guiauto.helpers import With from commons import * init_arjuna() automator = launch_automator() login(automator) automator.element(With.link_text("Posts")).click() automator.element(With.link_text("Add New")).click() tinymce = With.id("tinymce") publish = With.id("publish") # Frame by identifier and jump to root automator.frame(With.id("content_ifr")).focus() automator.element(tinymce).set_text("This is a test - frame by name.") automator.dom_root.focus() automator.element(publish).click() # Frame by index automator.frame(With.index(0)).focus() automator.element(tinymce).set_text("This is a test - frame by index.") # Focusing on root from frame itself automator.dom_root.focus() automator.element(publish).click() # jump to parent frame = automator.frame(With.xpath("//iframe")) print(frame)
''' 3. (Especially for custom select controls) - Click the drop down control and then click the option. ''' from commons import * from arjuna.tpi.guiauto.helpers import With, GuiActionConfig init_arjuna() automator = launch_automator() url = automator.config.get_user_option_value("narada.ex.dropdown.url").as_str() automator.browser.go_to_url(url) conf = GuiActionConfig.builder().check_type(False).check_post_state( False).build() dropdown = automator.dropdown( With.id("DropDown"), option_container_locators=With.class_name("dropdown"), option_locators=With.class_name("dropdown-item")) dropdown.configure(conf) dropdown.select_index(2) # automator.quit()
from commons import * from arjuna.tpi.guiauto.helpers import With, Screen init_arjuna() automator = launch_automator() go_to_wp_home(automator) user, pwd = automator.config.get_user_option_value( "wp.users.admin").split_as_str_list() # Login automator.element(With.id("user_login")).set_text(user) automator.element(With.id("user_pass")).set_text(pwd) automator.element(With.id("wp-submit")).click() automator.element(With.class_name("welcome-view-site")).wait_until_visible() # Logout url = automator.config.get_user_option_value("wp.logout.url").as_str() automator.browser.go_to_url(url) automator.element(With.link_ptext("log out")).click() message = automator.element(With.ptext("logged out")).wait_until_visible() automator.quit()
from commons import * from arjuna.tpi.guiauto.helpers import With, Screen init_arjuna() automator = launch_automator() go_to_wp_home(automator) user, pwd = automator.config.get_user_option_value( "wp.users.admin").split_as_str_list() # Login user_field = automator.element(With.id("user_login")) user_field.identify() user_field.wait_until_clickable() user_field.set_text(user) pwd_field = automator.element(With.id("user_pass")) pwd_field.identify() pwd_field.wait_until_clickable() pwd_field.set_text(pwd) submit = automator.element(With.id("wp-submit")) submit.identify() submit.wait_until_clickable() submit.click() automator.element(With.class_name("welcome-view-site")).wait_until_visible() # Logout url = automator.config.get_user_option_value("wp.logout.url").as_str()
3 will be covered later when element configuration has been discussed. ''' from arjuna.tpi import Arjuna from arjuna.tpi.guiauto.helpers import With from commons import * init_arjuna() automator = launch_automator() login(automator) automator.element(With.link_text("Settings")).click() role_select = automator.dropdown(With.id("default_role")) role_select.select_value("editor") role_select.select_visible_text("Subscriber") print(role_select.has_visible_text_selected("Subscriber")) print(role_select.has_value_selected("subscriber")) print(role_select.has_index_selected(2)) print(role_select.first_selected_option_value) print(role_select.first_selected_option_text) role_select.select_index(4) print(role_select.has_index_selected(4)) text = "Subscriber" role_select.send_option_text(text)
from commons import * from arjuna.tpi.guiauto.helpers import With, Screen init_arjuna() automator = launch_automator() go_to_wp_home(automator) # Two identifiers. Only first one would be tried as it succeeds. element = automator.element(With.id("user_login"), With.name("log")) element.identify() print(element.source.content.root) # Two identifiers. First invalid, second valid. Hence it succeeds by using second With construct # Identification max wait time is for all With constructs clubbed together. element = automator.element(With.id("INVALID"), With.name("log")) element.identify() print(element.source.content.root) automator.quit()
from commons import * from arjuna.tpi.guiauto.helpers import With init_arjuna() automator = launch_automator() go_to_wp_home(automator) # The following code is for user name field. # Html of user name: <input type="text" name="log" id="user_login" class="input" value="" size="20"> element = automator.element(With.id("user_login")) element.identify() print(element.source.content.root) element = automator.element(With.name("log")) element.identify() print(element.source.content.root) element = automator.element(With.class_name("input")) element.identify() print(element.source.content.root) element = automator.element(With.tag_name("input")) element.identify() print(element.source.content.root) # The following options are for # Html of link: <a href="http://192.168.56.103/wp-login.php?action=lostpassword" title="Password Lost and Found">Lost your password?</a> element = automator.element(With.link_text("Lost your password?")) element.identify() print(element.source.content.root)
from commons import * from arjuna.tpi.guiauto.helpers import With, GuiActionConfig init_arjuna() automator = launch_automator() url = automator.config.get_user_option_value( "narada.ex.elemstate.url").as_str() automator.browser.go_to_url(url) automator.element(With.id("target")).click() automator.alert.confirm() automator.browser.go_to_url(url) conf = GuiActionConfig.builder().check_pre_state(False).build() print(conf.settings) automator.element(With.id("target")).configure(conf).click() automator.alert.confirm()
from commons import * def print_source_info(source): print(source.content.root) print(source.content.all) print(source.content.inner) print(source.content.text) init_arjuna() automator = launch_automator() go_to_wp_home(automator) element = automator.element(With.id("loginform")) print_source_info(element.source) login(automator, at_home=False) automator.element(With.link_text("Settings")).click() # Dopdown element = automator.dropdown(With.id("default_role")) print_source_info(element.source) # Radio date_format = automator.radio_group(With.name("date_format")) print_source_info(date_format.source) # Automator source