python中应对各种机制
延迟机制
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
driver.get('https://www.guiderank-app.com/goods-search?categoryId=14606257169901630856')
my_element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, '//*[@id="app"]/div[2]/div[3]/div/div[2]/div/div[1]/div[2]')))
# elemen=driver.find_element(By.XPATH,'//div[contains(@class,"el-dialog__wrapper")]/*[contains(@class,"el-dialog myDialog")]/*[contains(@class,"el-dialog__body")]/*[contains(@class,"newuser")]/span').text
print(my_element)
新框架:
browser=webdriver.Firefox()
browser.get("https://mail.qq.com/")
browser.switch_to.frame("login_frame")#切换到内嵌iframe
browser.find_element_by_class_name("inputstyle").send_keys("xxxxx")
pyautogui.hotkey('Tab')
browser.find_element_by_class_name("inputstyle.password").send_keys("xxxxx")
browser.switch_to.default_content()#回到默认的iframe
url = 'http://daka.95155.com/login.html'
# url ='https://login.51job.com/login.php?loginway=0&isjump=0&lang=c&from_domain=i&url='#调试代码
driver.get(url) # 加载网址
time.sleep(5)
#调试代码
# elemen=driver.find_element(By.XPATH,"//div[@class='hands-main']").text # 点击账户登录
# driver.find_element(By.XPATH,
# ".//div[@class='btnbox']/*[contains(@data-sensor-id,'sensor_login_signinButton')]").click() # 点击账户登录
# driver.find_element(By.XPATH,
# "//div[@class='el-dialog__body']/div[@class='loginBtnWrap']/button[@class='el-button loginBtn el-button--primary']/span[text()=\"登录\"]").click() # 点击账户登录
# elemen=driver.find_element(By.XPATH,
# "//div[@class='el-dialog__body']/div[@class='loginBtnWrap']/button[@class='el-button loginBtn el-button--primary']/span[text()=\"登录\"]") # 点击账户登录
driver.switch_to.frame('businesslineIframe')
my_element=driver.find_element(By.XPATH,
"//div[@class='el-dialog__body']/div[@class='newuser']/span") # 点击账户登录
print(my_element)