一个练手的网站
自动登陆 密码提交 定位它的余额 其它的大部分我都进了
就是想获取它的球队名 但是总是定位不到给我报了个找不到的错误
如图:
网站的球队名如图:
![图片描述][2]
网站定位的框架如图:
![图片描述][3]
代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.set_window_position(10,100)
driver.set_window_size(1280, 700)
driver.get('http://66.133.87.55/')
iframe =driver.find_element_by_name('SI2_mem_index')
driver.switch_to.frame(iframe)
'''点击旧网站'''
test_crown = driver.find_element_by_xpath('//*[@id="oldspan"]')
test_crown.click()
'''账号'''
username = driver.find_element_by_id('username')
username.clear()
username.click()
username.send_keys('testName888')
'''密码'''
userpasswrod = driver.find_element_by_id('passwd')
userpasswrod.clear()
userpasswrod.click()
userpasswrod.send_keys('aaa888')
'''提交登陆'''
landing = driver.find_element_by_class_name('za_button')
landing.click()
'''获取当前信用额'''
iframe1 = driver.find_element_by_id('header')
driver.switch_to.frame(iframe1)
credit = driver.find_element_by_xpath('//*[@id="credit"]')
# print(driver.title)
# print(credit.get_attribute('text'))
# print(credit.title)
print('当前信用额度是{}'.format(credit.text))
'''获取球队名'''
team = driver.find_element_by_id('body')
driver.switch_to.frame(team)
# team1 = driver.find_element_by_class_name('team_name none')
team1 = driver.find_element_by_xpath('//*[@id="TR_11-1040166_1"]')
print(team1.text)
折腾了大半天 没效果
但是我把代码:
获取球队名 的代码跟 获取信用额度的代码 调换了下 可以执行球队名 但不执行 获取信用额度
如图:
![图片描述][4]
(이 질문을 이해하는 데 이틀 밤의 독학이 걸렸습니다)
누가 앞에 놓이더라도 성공할 수 있습니다. 중첩된 프레임/iframe은 레이어별로 점프해야 하고 기본 콘텐츠에서 가장 높은 프레임으로만 점프할 수 있고 아버지 프레임은 아들 프레임으로 점프하기 때문입니다. 같은 레벨이면 점프할 수 없습니다
따라서 다시 점프하기 전에 두 번째로 SI2_mem_index로 돌아가야 합니다(헤더와 본문의 두 iframe이 동일함)
으아아아테스트 결과 사진을 삽입할 수 없어서 블로그에 올렸습니다: https://lypro09539.github.io/