selenium选择元素的方法
selenium选择元素的方法
·find_element_by_css_selector:通过元素的class选择,如<div class=‘bdy-inner‘>test</div>可以使用find_element_by_css_selector(‘div.bdy-inner‘)。
·find_element_by_xpath:通过xpath选择,如<form id="loginForm">可以使用driver.find_element_by_xpath("//form[@id=‘loginForm‘]")。
·find_element_by_id:通过元素的id选择,如<div id=‘bdy-inner‘>test</div>可以使用driver.find_element_by_id(‘bdy-inner‘)。
·find_element_by_name:通过元素的name选择,如<input name="username"type="text"/>可以使用driver.find_element_by_name(‘password‘)。
·find_element_by_link_text:通过链接地址选择,如<a href="continue.html">Continue</a>可以使用driver.find_element_by_link_text(‘Continue‘)。
·find_element_by_partial_link_text:通过链接的部分地址选择,如<a href="continue.html">Continue</a>可以使用driver.find_element_by_partial_link_text(‘Conti‘)。
·find_element_by_tag_name:通过元素的名称选择,如<h1>Welcome</h1>可以使用driver.find_element_by_tag_name(‘h1‘)。
·find_element_by_class_name:通过元素的class选择,如<p class="content">Site content goes here.</p>可以使用driver.find_element_by_class_name(‘content‘)。
有时,我们需要查找多个元素。上述例子就查找了所有的评论。因此,也有对应的元素选择方法,就是在上述的element后加上s,变成elements。
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
其中,xpath和css_selector是比较好的方法,一方面比较清晰,另一方面相对其他方法定位元素比较准确。
在上述例子中,我们使用了Selenium的click操作元素方法。常见的操作元素方法如下:
·Clear:清除元素的内容。
·send_keys:模拟按键输入。
·Click:单击元素。
·Submit:提交表单。
user = driver.find_element_by_name("username") #找到用户名输入框
user.clear #清除用户名输入框内容
user.send_keys("1234567") #在框中输入用户名
pwd = driver.find_element_by_name("password") #找到密码输入框
pwd.clear #清除密码输入框内容
pwd.send_keys("******") #在框中输入密码
driver.find_element_by_id("loginBtn").click() #单击登录
上述代码是一个自动登录程序截取的一部分。从代码中可以看到,可以用Selenium操作元素的方法对浏览器中的网页进行各种操作,包括登录。
Selenium除了可以实现简单的鼠标操作,还可以实现复杂的双击、拖拽等操作。此外,Selenium还可以获得网页中各个元素的大小,甚至可以进行模拟键盘的操作