python+selenium 계정 로그인 후 자동 클릭
7036 단어 자동화 테스트
우선 요구 사항을 명확히 해야 한다.
Python+selenium을 사용한 작은 예를 간단하게 기록해 보십시오.사용한 버전은 Python3.3 및selenium2, Windows 환경(현재 3.0 이상을 지원하고 있으며 여러 개의 포럼 블로그가 업데이트되지 않았습니다).우선 소프트웨어의 설치입니다. 파이톤은 군말 없이 환경 변수를 설정하는 것을 기억하세요.다음에selenium을 설치합니다. 만약 pip가 설치되어 있다면.명령을 직접 실행해 보세요.
pip install -U selenium
다른 방식,https://pypi.python.org/packages/source/s/selenium/selenium-2.52.0.tar.gz다운로드하여 압축을 풀다.윈도우즈 버전을 간단히 설명하지만, 사실 Unix에서도 차이가 많지 않으니, Wget을 사용하여 설치를 다운로드하십시오.명령 사용(setup은 일반적으로 타사 모듈 설치에 사용됩니다):
cd c:\Python3\xxxx
python setup.py install
설치 과정 중
ImportError: No module named setuptools
이 나타날 수 있습니다. setuptools 모듈이 부족하여 Python은 기본적으로 설치되지 않습니다.에서http://pypi.python.org/pypi/setuptools각 시스템에 대한 설치 키트 및 설치 설명서, Windows 시스템의 경우 다운로드https://bootstrap.pypa.io/ez_setup.py설치 스크립트를 자동화합니다.실행:python ez_setup.py
완성 후 selenium를 설치하면 됩니다.만약selenium에 대한 개념이 없거나 다른 의문이 있다면 문서를 참고할 수 있습니다. http://selenium-python.readthedocs.org/en/latest/installation.html여기에는 나의 실례를 이용하여 절차를 간단하게 설명해 드리겠습니다.첫 번째 단계에서는 브라우저 열기를 완료합니다.selenium2는selenium와webdriver를 결합하여 각 브라우저에 해당하는 드라이브를 직접 도입하여 열면 됩니다. 크롬 드라이브는 따로 설치해야 할 수 있으니 주의하십시오.
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('https://www.xxx.com')
웹 페이지를 열면 로그인해야 합니다. F12는 브라우저 디버거를 열고 작은 화살표로 요소를 선택하고 로그인 상자 계정과 비밀번호의 속성을 보며 보통 ID가 있습니다.selenium은 다음과 같은 방법으로 요소를 가져오고 다양한 작업을 할 수 있습니다. 구체적인 설명은 위의 링크 문서를 보십시오.
username="qun"
passwd="passwd"
browser = webdriver.Firefox()
browser.get('https://www.xxx.com')
browser.implicitly_wait(10)
elem=browser.find_element_by_id("loginFormUserName")
elem.send_keys(username)
elem=browser.find_element_by_id("loginFormPassword")
elem.send_keys(passwd)
elem=browser.find_element_by_id("loginFormSubmit")
elem.click()
일반적으로 로그인한 후 페이지는 모두 새로운 페이지로 이동하는데 어떻게 새로운 페이지를 얻습니까?여기에 창 손잡이의 개념이 있는데, 창 손잡이를 전환해서 완성한다.주의!때때로 원소가 한 프레임 안에 있을 때도 swtich를 통해 전환해야 한다.여기에wait 함수(위에도 있음)가 나타나는데 페이지가 불러오는 데 시간이 걸리기 때문에 클릭한 후에 요소가 불러올 가능성이 높습니다. 다음 절에서wait를 상세하게 설명하겠습니다.
browser.implicitly_wait(10)
browser.switch_to_window(browser.window_handles[-1])
이후에 클릭해야 할 구역을 선택하고 여기는 xpath 포지셔닝을 사용합니다. 자동화 테스트 과정에서 요소가 id,name 등 방법을 통해 포지셔닝을 할 수 없을 가능성이 높기 때문입니다. (많은 사람들이 쓰지 않고 테이블 세트를 좋아합니다. 저도 마찬가지입니다) xpath는 쓸모가 있습니다.자주 사용하는 게으름 피우는 방법은 Firefox가 xpath 플러그인을 설치하고 오른쪽 단추를 누르면 바로 얻을 수 있습니다.여기서는 권장하지 않기 때문에 플러그인을 사용하면 코드에 이런 것들이 가득할 수 있다.
XPath(/html/body/div/div[3]/div[2]/div[4]/p[2])
부득이하지 않으면, 가능한 한 원소의 특징을 사용하여, 예를 들어 단추의name를 지정합니다.또는 부모 요소를 통해 하위 요소를 배치합니다.
username =browser.find_element_by_xpath("//input[@name='username']")
clear_button = browser.find_element_by_xpath("//form[@id='loginForm']/input[4]")
코드는 다음과 같습니다. 온라인에서 자주 등장하는 By의 사용법은 패키지를 도입해야 합니다.
from selenium.webdriver.common.by import By
여기에 다른 함수를 사용하는데 나는 어떤 차이가 있는지 모르겠다.
for i in range(100):
elem=WebDriverWait(browser, 30).until(
lambda x:x.find_element_by_xpath("//table[@class='aaa']"/td[1]))
elem.click()
time.sleep(20)
print ("click",i)
그리고 여기서wait 함수를 언급해야 한다.selenium2에서 지연 대기는 두 가지로 나뉘는데 대기 표시와 스텔스 대기 표시이다.
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
browser.implicitly_wait(10) # seconds
양자의 차이는 하나는 시간 초과 대상을 직접 관리하는 것이고 하나는 웹 드라이브에 맡기는 것이다.물론 휴면법으로 마를 수도 있다.타임백을 도입하세요.
time.sleep(20)
이것은 단지 간단하게 용법을 설명할 뿐입니다. 개선할 수 있는 점이 많고, 봉인 함수가 없으며, 여러 개의 루틴을 사용하여 여러 개의 루틴을 병행하여 실행할 수 있습니다.앞으로 개선할 필요가 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
QTP 패키징 쉬운 함수1. 역할: 브라우저를 선택하여 지정된 웹 페이지를 엽니다. 매개 변수:strType 브라우저 openUrl 웹 페이지 열기 2. 역할: 페이지 새로 고침(QTP 자체 Refresh 함수)...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.