Merge-refactored advanced testplans (#756)

This commit is contained in:
karthika
2023-01-25 13:49:34 +05:30
committed by GitHub
parent 554fc28da5
commit 821e60f363
120 changed files with 5005 additions and 14711 deletions

View File

@@ -1146,6 +1146,852 @@ class ios_libs:
print("get_wifi_switch_element is ON")
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
# Runs Speed test on OOKla Speed test App on Android devices, OOKLA app should be present on the Device
def speed_test(self, setup_perfectoMobile):
driver = setup_perfectoMobile[0]
driver.switch_to.context('NATIVE_APP')
self.openApp('com.ookla.speedtest', setup_perfectoMobile)
driver.find_element_by_xpath("//*[@label='GO']").click()
# Wait untill 2 minutes for the test to complete
WebDriverWait(driver, 120).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@value='Test Again']")))
result = driver.find_element_by_xpath("//XCUIElementTypeOther[contains(@label,'Download Speed')]").text
print(result)
download_speed = result.split('Download Speed, ')[1].split('. ')[0]
upload_speed = result.split('Upload speed, ')[1].split('. ')[0]
download_speed = str(download_speed)[0:4]
upload_speed = str(upload_speed)[0:4]
print(f"Download speed: {download_speed}")
print(f"Upload speed: {upload_speed}")
return download_speed, upload_speed
# Function used to connect to a particular SSID
def wifi_connect(self, ssid, passkey, setup_perfectoMobile, connData):
print("\n-------------------------------------")
print("Select Wifi/Get IP Address IOS Connection")
print("-------------------------------------")
is_internet = False
wifi_name = ssid
wifi_pass = passkey
ssid_found = False
print("Verifying Wifi/AP Connection Details....")
report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]
report.step_start("Switching Driver Context")
print("Switching Context to Native")
driver.switch_to.context('NATIVE_APP')
# driver.switch_to.context(contexts[0])
report.step_start("Set Wifi Network to " + wifi_name)
# Open Settings Application
logging.info("Opening IOS setting APP")
self.openApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
try:
time.sleep(2)
driver.implicitly_wait(2)
try:
print("Verifying Connected Wifi Connection")
report.step_start("Loading Wifi Page")
element = driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']")
element.click()
except NoSuchElementException:
print("Exception: Verify Xpath - unable to click on Wifi")
logging.error("Exception: Verify Xpath - unable to click on Wifi")
time.sleep(2)
driver.implicitly_wait(4)
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
try:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']")
get_wifi_switch_element_text = get_wifi_switch_element.text
try:
if get_wifi_switch_element_text == "0" or get_wifi_switch_element_text == 0:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']")
driver.implicitly_wait(1)
get_wifi_switch_element.click()
driver.implicitly_wait(1)
i = 0
for i in range(5):
try:
get_wifi_switch_element = driver.find_element_by_xpath(
"//*[@label='Wi-Fi' and @value='1']")
get_wifi_switch_element_text = get_wifi_switch_element.text
except:
print("Switch is OFF")
logging.info("Wifi Switch is OFF")
if get_wifi_switch_element_text == "1" or get_wifi_switch_element_text == 1:
print("WIFI Switch is ON")
logging.info("Wifi Switch is ON")
break
else:
try:
get_wifi_switch_element = driver.find_element_by_xpath(
"//*[@label='Wi-Fi' and @value='0']")
get_wifi_switch_element_text = get_wifi_switch_element.text
except:
print("WIFi switch is ON")
logging.info("Wifi Switch is ON")
if (get_wifi_switch_element_text == "0" or get_wifi_switch_element_text == 0):
print("switch is still OFF")
logging.error("Wifi Switch is OFF")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
else:
print("Switch is Still OFF")
logging.error("Wifi Switch is OFF")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
except:
print("No switch element found")
logging.error("No switch element found")
except:
print("get_wifi_switch_element is ON")
logging.warning("get_wifi_switch_element is ON")
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
except:
print("Cannot find WIFI element")
logging.error("Cannot find WIFI element")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
# ---------------------This is to Forget current connected SSID-------------------------------
# ---------------------This to Avoid any popup page from captive portal--------------------#
try:
time.sleep(4)
print("getting in to Additional details")
report.step_start("Clicking More Info")
logging.info("getting in to Additional details")
additional_details_element = driver.find_element_by_xpath(
"//*[@label='selected']/parent::*/parent::*/XCUIElementTypeButton[@label='More Info']")
additional_details_element.click()
try:
time.sleep(2)
print("Forget Connected Network")
logging.info("Forget Connected Network")
forget_ssid = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Forget This Network']")))
forget_ssid.click()
print("Forget old ssid")
logging.info("Forget old ssid")
try:
time.sleep(2)
report.step_start("Forget SSID popup1")
forget_ssid_popup = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Forget']")))
forget_ssid_popup.click()
print("**alert** Forget SSID popup killed **alert**")
except:
print("Forget SSID popup not found")
except:
print("couldn't find forget ssid element")
logging.warning("couldn't find forget ssid element")
except:
print("No connected SSID")
logging.info("No connected SSID")
try:
report.step_start("Unexpected Captive Popup")
print("Unexpeceted Captive Poped Up")
captive_portal_cancel_element = driver.find_element_by_xpath("//*[@label='Cancel']")
captive_portal_cancel_element.click()
time.sleep(2)
use_other_network_element = driver.find_element_by_xpath("//*[@label='Use Other Network']")
use_other_network_element.click()
time.sleep(2)
except:
print("No Captive Portal Popup Found")
try:
time.sleep(4)
print("getting in to Additional details")
report.step_start("Clicking More Info")
additional_details_element = driver.find_element_by_xpath(
"//*[@label='selected']/parent::*/parent::*/XCUIElementTypeButton[@label='More Info']")
additional_details_element.click()
try:
time.sleep(2)
print("Forget Connected Network")
forget_ssid = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Forget This Network']")))
forget_ssid.click()
print("Forget old ssid")
try:
time.sleep(2)
report.step_start("Forget SSID popup1")
forget_ssid_popup = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Forget']")))
forget_ssid_popup.click()
print("**alert** Forget SSID popup killed **alert**")
except:
print("Forget SSID popup not found")
except:
print("couldn't find forget ssid element")
except:
print("No connected SSID")
# ---------------------This is to Forget current connected SSID-------------------------------
# ---------------------To get all available SSID and select it-------------------------------
print("Searching for Wifi: " + wifi_name)
# allure.attach(name= body=str("Searching for Wifi: " + wifi_name))
time.sleep(2)
report.step_start("Searching SSID")
print("Selecting Wifi: " + wifi_name)
available_ssids = False
try:
for check_for_all_ssids in range(12):
available_ssids = self.get_all_available_ssids(driver)
allure.attach(name="Available SSIDs in device: ", body=str(available_ssids))
try:
if (not self.ssid_Visible(driver, wifi_name)) or (wifi_name not in available_ssids):
self.scrollDown(setup_perfectoMobile)
time.sleep(2)
else:
try:
driver.implicitly_wait(8)
report.step_start("Selecting SSID To Connect")
ssid_found = True
print(wifi_name + " : Found in Device")
wifiSelElement = WebDriverWait(driver, 35).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='" + wifi_name + "']")))
print(wifiSelElement)
wifiSelElement.click()
print("Selecting SSID")
break
except:
print("SSID unable to select")
logging.error("Unable to select SSID")
report.step_start("Selecting Unable SSID To Connect")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
except:
print("couldn't connect to " + wifi_name)
logging.error("Couldn't Find ssid")
# request.config.cache.set(key="SelectingWifiFailed", value=str(e))
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
pass
if not ssid_found:
print("could not found " + wifi_name + " in device")
logging.error("Couldn't Find ssid in device")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
except:
pass
# ---------------------To get all available SSID and select it-------------------------------
# ---------------------Set Password-------------------------------
try:
driver.implicitly_wait(5)
print("Entering Password")
logging.info("Entering Password")
report.step_start("Entering Password")
wifiPassword = driver.find_element_by_xpath("//*[@label='Password']")
wifiPassword.send_keys(wifi_pass)
except NoSuchElementException:
print("Enter Password Page Not Loaded")
logging.warning("Enter Password Page Not Loaded")
# ---------------------Set Password-------------------------------
# ---------------------Click on join-------------------------------
try:
driver.implicitly_wait(4)
print("Selecting join")
report.step_start("Clicking JOIN")
joinBTN = driver.find_element_by_xpath("//*[@label='Join']")
joinBTN.click()
except Exception as e:
print("Join Button Not Enabled...Password may not be needed")
logging.warning("Join Button Not Enabled...Password may not be needed")
# ---------------------Click on join-------------------------------
# ---------------------check if internet-------------------------------
try:
driver.implicitly_wait(5)
WifiInternetErrMsg2 = driver.find_element_by_xpath("//*[@label='No Internet Connection']")
# = driver.find_element_by_xpath("//*[@label='No Internet Connection']").text
except Exception as e:
is_internet = True
print("No Wifi-AP Error Internet Error: " + wifi_name)
# Need to add Wait for Selected Wifi Xpath
# time.sleep(3)
# ---------------------check if internet-------------------------------
return is_internet, setup_perfectoMobile, ssid_found
# Gets the IP Address of the connected SSID from Phone
def get_ip_address(self, ssid, setup_perfectoMobile, connData):
wifi_name = ssid
driver = setup_perfectoMobile[0]
report = setup_perfectoMobile[1]
# ---------------------Additional INFO-------------------------------
try:
driver.implicitly_wait(5)
print("Selecting SSID: ", wifi_name)
report.step_start("Additional details of SSID")
additional_details_element = WebDriverWait(driver, 35).until(
EC.presence_of_element_located((MobileBy.XPATH,
"//*[@label='" + wifi_name + "']")))
# //*[@label='selected']/parent::*/parent::*/XCUIElementTypeButton[@label='More Info']
additional_details_element.click()
try:
driver.implicitly_wait(2)
report.step_start("Checking SSID Name as Expected")
print("Checking SSID Name")
ssidname_text = driver.find_element_by_xpath("//*[@label='" + wifi_name + "']").text
print(ssidname_text)
if (ssidname_text == wifi_name):
print("SSID Matched")
logging.info("SSID Matched")
allure.attach(name="SSID Matched ", body=str(wifi_name))
else:
print("SSID Not Matched")
logging.info("SSID Not Matched")
allure.attach(name="SSID Not Matched ", body=str(wifi_name))
reportFlag = False
assert reportFlag
except:
print("SSID is not Checked in more Info")
logging.warning("SSID is not Checked in more Info")
try:
report.step_start("Checking WiFi Address")
print("Checking WIFI address")
# (//*[@label="IP Address"]/parent::*/XCUIElementTypeStaticText)[2]
wifi_address_element_text = driver.find_element_by_xpath(
"(//*[@label='Wi-Fi Address']/parent::*/XCUIElementTypeStaticText)[2]").text
print("wifi_address_element_text: ", wifi_address_element_text)
allure.attach(name="Connected SSID WiFi-Address: ", body=str(wifi_address_element_text))
except Exception as e:
print("WiFi-Address not Found")
logging.warning("WiFi-Address not Found")
try:
time.sleep(4)
report.step_start("Checking IP Address")
print("Checking IP address")
logging.info("Checking IP address")
# (//*[@label="IP Address"]/parent::*/XCUIElementTypeStaticText)[2]
ip_address_element_text = driver.find_element_by_xpath(
"(//*[@label='IP Address']/parent::*/XCUIElementTypeStaticText)[2]").text
print("ip_address_element_text: ", ip_address_element_text)
except Exception as e:
try:
time.sleep(4)
print("Scrolling for checking ip address")
self.scrollDown(setup_perfectoMobile)
ip_address_element_text = driver.find_element_by_xpath(
"(//*[@label='IP Address']/parent::*/XCUIElementTypeStaticText)[2]").text
print("ip_address_element_text: ", ip_address_element_text)
except:
print("IP Address not Found")
logging.info("IP Address not Found")
except Exception as e:
print("Select Additional Info failed")
logging.warning("Select Additional Info failed")
# ---------------------Additional INFO-------------------------------
return ip_address_element_text
def run_speed_test(self, setup_perfectoMobile, connData):
print("\n-------------------------------------")
print("Verify Upload & Download Speed")
print("-------------------------------------")
report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]
current_result = True
contexts = driver.contexts
# print("Printing Context")
# print(contexts)
driver.switch_to.context('WEBVIEW_1')
time.sleep(5)
try:
print("Launching Safari")
report.step_start("Google Home Page")
time.sleep(4)
driver.get(connData["webURL"])
print("Enter Search Text")
time.sleep(4)
driver.find_element_by_xpath("//*[@class='gLFyf']").send_keys("Internet speed test")
time.sleep(4)
driver.find_element_by_xpath("//*[@class='aajZCb']//*[@class='nz2CCf']/li[1]/div[1]/div[1]").click()
except:
try:
print("Finding search option")
report.step_start("Input For Search")
driver.implicitly_wait(4)
driver.get(connData["webURL"])
print("Enter Search Text")
driver.implicitly_wait(4)
element_find_txt = driver.find_element_by_xpath(connData["lblSearch"])
element_find_txt.send_keys("Internet Speed Test")
except Exception as e:
print("Launching Safari Failed")
print(e)
try:
print("Click Run Speed Test Button...")
report.step_start("Click Run Speed Test Button")
driver.implicitly_wait(4)
driver.find_element_by_xpath(connData["BtnRunSpeedTest"]).click()
except NoSuchElementException:
current_result = False
print("Run Speed Test Button element not found", NoSuchElementException)
return current_result
# Get upload/Download Speed
try:
report.step_start("Get upload/Download Speed")
time.sleep(60)
download_mbps = driver.find_element_by_xpath(connData["downloadMbps"])
download_speed = download_mbps.text
print("Download: " + download_speed + " Mbps")
time.sleep(30)
upload_mbps = driver.find_element_by_xpath(connData["UploadMbps"])
upload_speed = upload_mbps.text
print("Upload: " + upload_speed + " Mbps")
allure.attach(name="Speed Test logs: ",
body=str("Upload: " + upload_speed + " Mbps" + " Download: " + download_speed + " Mbps"))
print("Access Point Verification Completed Successfully")
except NoSuchElementException:
print("Access Point Verification NOT Completed, checking Connection....")
current_result = False
return current_result
#----------Wifi connect for Enterprise Security---------------
def wifi_connect_eap(self, ssid, user, ttls_passwd, setup_perfectoMobile, connData):
print("\n-------------------------------------")
print("Select Wifi/Get IP Address IOS Connection")
print("-------------------------------------")
is_internet = False
wifi_name = ssid
ssid_found = False
print("Verifying Wifi/AP Connection Details....")
report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]
report.step_start("Switching Driver Context")
print("Switching Context to Native")
driver.switch_to.context('NATIVE_APP')
# driver.switch_to.context(contexts[0])
report.step_start("Set Wifi Network to " + wifi_name)
# Open Settings Application
logging.info("Opening IOS setting APP")
self.openApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
try:
time.sleep(2)
driver.implicitly_wait(2)
try:
print("Verifying Connected Wifi Connection")
report.step_start("Loading Wifi Page")
element = driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']")
element.click()
except NoSuchElementException:
print("Exception: Verify Xpath - unable to click on Wifi")
logging.error("Exception: Verify Xpath - unable to click on Wifi")
time.sleep(2)
driver.implicitly_wait(4)
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
try:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']")
get_wifi_switch_element_text = get_wifi_switch_element.text
try:
if get_wifi_switch_element_text == "0" or get_wifi_switch_element_text == 0:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']")
driver.implicitly_wait(1)
get_wifi_switch_element.click()
driver.implicitly_wait(1)
i = 0
for i in range(5):
try:
get_wifi_switch_element = driver.find_element_by_xpath(
"//*[@label='Wi-Fi' and @value='1']")
get_wifi_switch_element_text = get_wifi_switch_element.text
except:
print("Switch is OFF")
logging.info("Wifi Switch is OFF")
if get_wifi_switch_element_text == "1" or get_wifi_switch_element_text == 1:
print("WIFI Switch is ON")
logging.info("Wifi Switch is ON")
break
else:
try:
get_wifi_switch_element = driver.find_element_by_xpath(
"//*[@label='Wi-Fi' and @value='0']")
get_wifi_switch_element_text = get_wifi_switch_element.text
except:
print("WIFi switch is ON")
logging.info("Wifi Switch is ON")
if (get_wifi_switch_element_text == "0" or get_wifi_switch_element_text == 0):
print("switch is still OFF")
logging.error("Wifi Switch is OFF")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
else:
print("Switch is Still OFF")
logging.error("Wifi Switch is OFF")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
except:
print("No switch element found")
logging.error("No switch element found")
except:
print("get_wifi_switch_element is ON")
logging.warning("get_wifi_switch_element is ON")
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
except:
print("Cannot find WIFI element")
logging.error("Cannot find WIFI element")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
# ---------------------This is to Forget current connected SSID-------------------------------
# ---------------------This to Avoid any popup page from captive portal--------------------#
try:
time.sleep(4)
print("getting in to Additional details")
report.step_start("Clicking More Info")
logging.info("getting in to Additional details")
additional_details_element = driver.find_element_by_xpath(
"//*[@label='selected']/parent::*/parent::*/XCUIElementTypeButton[@label='More Info']")
additional_details_element.click()
try:
time.sleep(2)
print("Forget Connected Network")
logging.info("Forget Connected Network")
forget_ssid = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Forget This Network']")))
forget_ssid.click()
print("Forget old ssid")
logging.info("Forget old ssid")
try:
time.sleep(2)
report.step_start("Forget SSID popup1")
forget_ssid_popup = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Forget']")))
forget_ssid_popup.click()
print("**alert** Forget SSID popup killed **alert**")
except:
print("Forget SSID popup not found")
except:
print("couldn't find forget ssid element")
logging.warning("couldn't find forget ssid element")
except:
print("No connected SSID")
logging.info("No connected SSID")
try:
report.step_start("Unexpected Captive Popup")
print("Unexpeceted Captive Poped Up")
captive_portal_cancel_element = driver.find_element_by_xpath("//*[@label='Cancel']")
captive_portal_cancel_element.click()
time.sleep(2)
use_other_network_element = driver.find_element_by_xpath("//*[@label='Use Other Network']")
use_other_network_element.click()
time.sleep(2)
except:
print("No Captive Portal Popup Found")
try:
time.sleep(4)
print("getting in to Additional details")
report.step_start("Clicking More Info")
additional_details_element = driver.find_element_by_xpath(
"//*[@label='selected']/parent::*/parent::*/XCUIElementTypeButton[@label='More Info']")
additional_details_element.click()
try:
time.sleep(2)
print("Forget Connected Network")
forget_ssid = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Forget This Network']")))
forget_ssid.click()
print("Forget old ssid")
try:
time.sleep(2)
report.step_start("Forget SSID popup1")
forget_ssid_popup = WebDriverWait(driver, 30).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Forget']")))
forget_ssid_popup.click()
print("**alert** Forget SSID popup killed **alert**")
except:
print("Forget SSID popup not found")
except:
print("couldn't find forget ssid element")
except:
print("No connected SSID")
# ---------------------This is to Forget current connected SSID-------------------------------
# ---------------------To get all available SSID and select it-------------------------------
print("Searching for Wifi: " + wifi_name)
# allure.attach(name= body=str("Searching for Wifi: " + wifi_name))
time.sleep(2)
report.step_start("Searching SSID")
print("Selecting Wifi: " + wifi_name)
ssid_found = False
available_ssids = False
try:
for check_for_all_ssids in range(12):
available_ssids = self.get_all_available_ssids(driver)
allure.attach(name="Available SSIDs in device: ", body=str(available_ssids))
try:
if (not self.ssid_Visible(driver, wifi_name)) or (wifi_name not in available_ssids):
self.scrollDown(setup_perfectoMobile)
time.sleep(2)
else:
try:
driver.implicitly_wait(8)
report.step_start("Selecting SSID To Connect")
ssid_found = True
print(wifi_name + " : Found in Device")
wifi_sel_element = WebDriverWait(driver, 35).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='" + wifi_name + "']")))
print(wifi_sel_element)
wifi_sel_element.click()
print("Selecting SSID")
break
except:
print("SSID unable to select")
logging.error("Unable to select SSID")
report.step_start("Selecting Unable SSID To Connect")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
except:
print("couldn't connect to " + wifi_name)
logging.error("Couldn't Find ssid")
# request.config.cache.set(key="SelectingWifiFailed", value=str(e))
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
pass
if not ssid_found:
print("could not found " + wifi_name + " in device")
logging.error("Couldn't Find ssid in device")
self.closeApp(self.connData["bundleId-iOS-Settings"], setup_perfectoMobile)
return is_internet, setup_perfectoMobile, ssid_found
except:
pass
# ---------------------To get all available SSID and select it-------------------------------
# Set username
# -------------------------------------------------------
try:
driver.implicitly_wait(4)
report.step_start("Entering User")
print("Entering User name")
logging.info("Entering User name")
wifi_user_element = WebDriverWait(driver, 35).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Username']")))
wifi_user_element.send_keys(user)
except NoSuchElementException:
print("Password Page Not Loaded, password May be cached in the System")
logging.error("Password Page Not Loaded, password May be cached in the System")
# -------------------------------------------------------
# ---------------------Set Password-------------------------------
try:
driver.implicitly_wait(4)
report.step_start("Entering Password")
print("Entering password")
wifi_password = WebDriverWait(driver, 35).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Password']")))
wifi_password.send_keys(ttls_passwd)
except NoSuchElementException:
print("Enter Password Page Not Loaded")
logging.error("Enter Password Page Not Loaded")
# ---------------------Set Password-------------------------------
# -------------------------------------------------------
# ---------------------Click on join-------------------------------
try:
driver.implicitly_wait(4)
report.step_start("Clicking Join")
print("Clicking Join")
join_btn = WebDriverWait(driver, 35).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Join']")))
join_btn.click()
except Exception as e:
print("Join Button Not Enabled...Password may not be needed")
logging.error("Join Button Not Enabled...Password may not be needed")
# ---------------------Click on join-------------------------------
# Selecting certificate
# -------------------------------------------------------
try:
driver.implicitly_wait(4)
report.step_start("Clicking Trust CA Cert")
print("Clicking Trust CA Cert")
cert_element = WebDriverWait(driver, 45).until(
EC.presence_of_element_located((MobileBy.XPATH, "//*[@label='Trust']")))
cert_element.click()
except NoSuchElementException:
print("Password Page Not Loaded, password May be cached in the System")
logging.error("Password Page Not Loaded, password May be cached in the System")
# ---------------------check if internet-------------------------------
try:
driver.implicitly_wait(5)
wifi_internet_err_msg = driver.find_element_by_xpath("//*[@label='No Internet Connection']")
# = driver.find_element_by_xpath("//*[@label='No Internet Connection']").text
except Exception as e:
is_internet = True
print("No Wifi-AP Error Internet Error: " + wifi_name)
logging.error("No Wifi-AP Error Internet Error: " + wifi_name)
# Need to add Wait for Selected Wifi Xpath
# time.sleep(3)
# ---------------------check if internet-------------------------------
return is_internet, setup_perfectoMobile, ssid_found
def wifi_disconnect(self, ssid, setup_perfectoMobile, connData):
print("\n-------------------------------------")
print("Wifi Disconnect and Forget Connection")
print("-------------------------------------")
print("Verifying Wifi/AP Connection Details....")
report = setup_perfectoMobile[1]
driver = setup_perfectoMobile[0]
report.step_start("Switching Driver Context")
print("Switching Context to Native")
driver.switch_to.context('NATIVE_APP')
# driver.switch_to.context(contexts[0])
report.step_start("Set Wifi Network to " + ssid)
# Open Settings Application
self.openApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile)
try:
time.sleep(2)
driver.implicitly_wait(2)
try:
print("Verifying Connected Wifi Connection")
report.step_start("Loading Wifi Page")
element = driver.find_element_by_xpath("//XCUIElementTypeCell[@name='Wi-Fi']")
element.click()
except NoSuchElementException:
print("Exception: Verify Xpath - unable to click on Wifi")
time.sleep(2)
driver.implicitly_wait(2)
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
try:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']")
get_wifi_switch_element_text = get_wifi_switch_element.text
if get_wifi_switch_element_text == "0" or get_wifi_switch_element_text == 0:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']")
driver.implicitly_wait(1)
get_wifi_switch_element.click()
driver.implicitly_wait(1)
i = 0
for i in range(5):
try:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='1']")
get_wifi_switch_element_text = get_wifi_switch_element.text
except:
print("switch is OFF")
if get_wifi_switch_element_text == "1" or get_wifi_switch_element_text == 1:
print("WIFI Switch is ON")
break
else:
try:
get_wifi_switch_element = driver.find_element_by_xpath(
"//*[@label='Wi-Fi' and @value='0']")
get_wifi_switch_element_text = get_wifi_switch_element.text
except:
print("WIFi switch is ON")
if (get_wifi_switch_element_text == "0" or get_wifi_switch_element_text == 0):
print("switch is still OFF")
self.closeApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile)
else:
print("Switch is Still OFF")
self.closeApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile)
except:
print("get_wifi_switch_element is ON")
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
except:
print("Cannot find WIFI element")
self.closeApp(connData["bundleId-iOS-Settings"], setup_perfectoMobile)
# ---------------------This is to Forget current connected SSID-------------------------------
try:
print("getting in to Additional details")
additional_details_element = driver.find_element_by_xpath(
"//*[@label='selected']/parent::*/parent::*/XCUIElementTypeButton[@label='More Info']")
additional_details_element.click()
try:
print("Forget Connected Network")
forget_ssid = driver.find_element_by_xpath("//*[@label='Forget This Network']")
forget_ssid.click()
print("Forget old ssid")
try:
report.step_start("Forget SSID popup1")
forget_ssid_popup = driver.find_element_by_xpath("//*[@label='Forget']")
forget_ssid_popup.click()
print("**alert** Forget SSID popup killed **alert**")
except:
print("Forget SSID popup not found")
except:
print("couldn't find forget ssid element")
except:
print("No connected SSID")
# ---------------------This is to Forget current connected SSID-------------------------------
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
try:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='1']")
get_wifi_switch_element_text = get_wifi_switch_element.text
print("switch state is : ", get_wifi_switch_element_text)
try:
if get_wifi_switch_element_text == "1" or get_wifi_switch_element_text == 1:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='1']")
driver.implicitly_wait(1)
get_wifi_switch_element.click()
driver.implicitly_wait(1)
i = 0
for i in range(5):
try:
get_wifi_switch_element = driver.find_element_by_xpath("//*[@label='Wi-Fi' and @value='0']")
get_wifi_switch_element_text = get_wifi_switch_element.text
except:
print("switch is ON")
if get_wifi_switch_element_text == "0" or get_wifi_switch_element_text == 0:
print("WIFI Switch is OFF")
break
else:
try:
get_wifi_switch_element = driver.find_element_by_xpath(
"//*[@label='Wi-Fi' and @value='1']")
get_wifi_switch_element.click()
get_wifi_switch_element_text = get_wifi_switch_element.text
except:
print("WIFi switch is OFF")
else:
print("Switch is Still OFF")
except:
pass
except:
print("get_wifi_switch_element is ON")
# --------------------To Turn on WIFi Switch if already OFF--------------------------------
def toggle_wifi_mode(self,ssid, setup_perfectoMobile, connData):
print("\n-----------------------")
@@ -1349,4 +2195,4 @@ if __name__ == '__main__':
"serial_tty": "/dev/ttyAP5",
"firmware_version": "next-latest"
}]
obj = ios_libs()
obj = ios_libs()