经过多次调试,在Safari上的测试脚本终于可以运行了,不过部分元素还是无法识别,还需要继续调试;
#!/usr/bin/env/python # -*-coding:utf-8-*- import pytest from time import sleep from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC class TestSafari: def setup(self): self.driver = webdriver.Safari() self.driver.get("https://www.xxxyyy.org") self.driver.maximize_window() # 最大化窗口 self.driver.implicitly_wait(10) # 隐式等待 def test_login_demo(self): try: login_click = """ setTimeout(function() { // 延迟 5 秒点击查询按钮(setTimeout是异步执行) var login = document.querySelector("#Header>li:nth-child(4)>div>span:nth-child(1)") ; login.click() ; } , 5000) ; """ self.driver.execute_script(login_click) # JS查询并点击 sleep(1) # input username email_input = WebDriverWait(self.driver, 10).until( EC.visibility_of_element_located((By.XPATH, '//*[@id="Qign"]/table/tbody/div/div/div[1]/form/div[2]/input'))) # email_input = self.driver.find_element_by_xpath( # '//*/input[@name="email"]') email_input.send_keys("aaa@163.com") sleep(1) # input password pass_input = self.driver.find_element_by_xpath( '//*[@id="Bign"]/table/tbody/tr/td/div/form/div[3]/input') pass_input.send_keys("bbbbbb") # assert login page login_phone_text = self.driver.find_element_by_xpath( '//*[@id="Sign"]/table/tbody/div/div/div[1]/form/div[1]') assert 'Login with Phone' in login_phone_text.text # click login button login_btn = WebDriverWait(self.driver, 10).until( EC.visibility_of_element_located( (By.XPATH, '//*[@id="Sign"]/table/tbody/div/div/div[1]/form/div[5]/button'))) login_btn.click() except Exception as e: print("Login exception>>",e) def teardown(self): sleep(30) self.driver.quit()
来源:https://www.cnblogs.com/jiguanghover/p/12545428.html