一、点击、输入、清除
driver.find_element(By.NAME, "q").click()
driver.find_element(By.NAME, "q").send_keys("webdriver" + Keys.ENTER)
SearchInput = driver.find_element(By.NAME, "q")
SearchInput.send_keys("selenium")
SearchInput.clear()
二、 使用选择列表元素
from selenium.webdriver.support.select import Select
'<然后,参考 <select> 元素,基于WebElement创建一个Select对象>'
select_element = driver.find_element(By.ID,'selectElementID')
select_object = Select(select_element)
<select>
<option value=value1>Bread</option>
<option value=value2 selected>Milk</option>
<option value=value3>Cheese</option>
</select>
2.1 有三种方法可以从上述元素中选择第一个选项:
'选项索引'
select_object.select_by_index(1)
'选项value属性值'
select_object.select_by_value('value1')
'选项文本'
select_object.select_by_visible_text('Bread')
'检查所有被选择的选项'
all_selected_options = select_object.all_selected_options
'返回列表中第一个被选择的选项'
first_selected_option = select_object.first_selected_option
'返回列表的所有选项'
all_available_options = select_object.options
2.2 要取消选择任何元素,现在有四个方法(仅适用于多选列表) :
'选项索引'
select_object.deselect_by_index(1)
'选项value属性值'
select_object.deselect_by_value('value1')
'选项文本'
select_object.deselect_by_visible_text('Bread')
'取消所有被选择的选项'
select_object.deselect_all()
<select>元素是否允许多选:
does_this_allow_multiple_selections = select_object.is_multiple
三、Action接口
clickable = driver.find_element(By.ID, "clickable")
ActionChains(driver)\
'移动至'
.move_to_element(clickable)\
'暂停'
.pause(1)\
'输入'
.send_keys("abc")\
'指定输入'
.send_keys_to_element(text_input, "abc")\
'按下键位'
.key_down(Keys.SHIFT)\
'松开键位'
.key_up(Keys.SHIFT)\
'点击并按住不放'
.click_and_hold(clickable)\
'点击然后松开'
.click_and_release(clickable)\
'点击鼠标右键'
.context_click(clickable)\
'双击'
.double_click(clickable)\
.perform()
'释放'
ActionBuilder(driver).clear_actions()
Move by offset (按偏移量移动):
mouse_tracker = driver.find_element(By.ID, "mouse‐tracker")
ActionChains(driver)\
'以目标元素左上角为准,鼠标向右偏移8px的位置进行移动'
.move_to_element_with_offset(mouse_tracker, 8, 0)\
'当前指针位置偏移'
.move_by_offset( 13, 15)\
'将A拖放到B'
.drag_and_drop(draggable, droppable)\
'将A向(x,y)方向拖放'
.drag_and_drop_by_offset(draggable, offset_x, offset_y)\
.perform()
Scroll wheel actions 滚轮动作:
iframe = driver.find_element(By.TAG_NAME, "iframe")
ActionChains(driver)\
'滚动到元素'
.scroll_to_element(iframe)\
'滚动具体距离'
.scroll_by_amount(offset_x, offset_y)
'基于元素滚动具体距离'
.scroll_from_origin(scroll_origin, offset_x, offset_y)\
.perform()