일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- kitura
- sshpass
- ftp
- postgresql
- nohup
- mysql
- insert
- 실행권한
- postgres
- nmap
- appium server
- 28015
- rethinkdb
- appium
- nGrinder
- SWIFT
- perfect
- Materials
- openpyxl
- create table
- STF
- centos
- Jupyter
- Jupyter Notebook
- ssh
- GoCD
- STF_PortForwarding
- PYTHON
- port forwarding
- ubuntu
- Today
- Total
don't stop believing
Selenium Locating Elements (python) 본문
Selenium을 사용하기 위해서는 Web source의 element를 찾아야 합니다.
[http://selenium-python.readthedocs.io/locating-elements.html]
Selenium에서는 web page의 elements를 찾기위해 아래와 같은 method들을 제공합니다.
아래 method들은 HTML의 page source중 가장 첫번째 element를 반환합니다.
- find_element_by_id
- find_element_by_name
- find_element_by_xpath
- find_element_by_link_text
- find_element_by_partial_link_text
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
find_element_by_id
id 속성을 가지고 있는 경우 사용합니다. id의 값을 찾아 해당 element를 리턴합니다.
<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> </form> </body> </html>
아래와 같이 id를 찾을 수 있습니다.
login_form = driver.find_element_by_id('loginForm')
find_element_by_name
name 속성으로 element를 찾을 수 있습니다. name의 값을 찾아 해당 element를 리턴합니다.
<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> </form> </body> </html>
find-element_by_name으로 찾을 수 있습니다.
username = driver.find_element_by_name('username') password = driver.find_element_by_name('password')
find_element_by_xpath
XPath는 XML의 노드의 위치를 찾는 언어입니다. HTML도 XML로 실행될수 있습니다. element를 찾기위한 적당한 id와 name 속성이 없을 경우 XPath를 사용할 수 있습니다.
<html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="continue" type="submit" value="Login" /> <input name="continue" type="button" value="Clear" /> </form> </body> </html>
아래와 같이 XPath를 사용할 수 있습니다.
login_form = driver.find_element_by_xpath("/html/body/form[1]") login_form = driver.find_element_by_xpath("//form[1]") login_form = driver.find_element_by_xpath("//form[@id='loginForm']")
HTML의 첫번째 form element에 대해 XPath이용해 아래와 같이 찾을 수 있습니다.
username = driver.find_element_by_xpath("//form[input/@name='username']") username = driver.find_element_by_xpath("//form[@id='loginForm']/input[1]") username = driver.find_element_by_xpath("//input[@name='username']")
HTML의 첫번째 input element의 name 속성과type을 알고 있을대 아래와 같이 XPath로 찾을 수 있습니다.
clear_button = driver.find_element_by_xpath("//input[@name='continue'][@type='button']") clear_button = driver.find_element_by_xpath("//form[@id='loginForm']/input[4]")
find_element_by_link_text
anchor 태그의 링크 텍스트로 element를 찾을 수 있습니다.
<html> <body> <p>Are you sure you want to do this?</p> <a href="continue.html">Continue</a> <a href="cancel.html">Cancel</a> </body> </html>
Continue 링크는 아래와 같이 찾을 수 있습니다.
continue_link = driver.find_element_by_link_text('Continue') continue_link = driver.find_element_by_partial_link_text('Conti')
find_element_by_tag_name
tag name으로 element를 찾을 수 있습니다.
<html> <body> <h1>Welcome</h1> <p>Site content goes here.</p> </body> </html>
heading (h1) element는 아래와 같이 찾을 수 있습니다.
heading1 = driver.find_element_by_tag_name('h1')
find_element_by_class_name
class 속성의 이름으로 element를 찾을 수 있습니다.
<html> <body> <p class="content">Site content goes here.</p> </body> </html>
p element는 아래와 같이 찾을 수 있습니다.
content = driver.find_element_by_class_name('content')
find_element_by_css_selector
CSS selector syntax를 이용해 찾을 수 있습니다.
<html> <body> <p class="content">Site content goes here.</p> </body> </html>
p element는 아래와 같이 찾을 수 있습니다.
content = driver.find_element_by_css_selector('p.content')
'Testing Automation > Selenium' 카테고리의 다른 글
Selenium With Python Document (0) | 2017.11.07 |
---|---|
로딩이 끝날때까지 기다리자 (Waits) (4) | 2017.11.07 |
find_element By로 정리하기 (2) | 2017.11.07 |
Selenium IDG for Firefox Nightly (Windows) (0) | 2017.11.06 |
Selenium (Python) 설치와 기본 사용해 보기 (Mac) (0) | 2017.11.06 |