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还可以获得网页中各个元素的大小,甚至可以进行模拟键盘的操作

相关推荐