selenium中对元素的操作

322 阅读1分钟

基础操作

点击事件:element.click()

el=wd.find_element(By.XPATH,'//a[@href="http://map.baidu.com"]')
el.click()

输入框事件:element.send_keys

element.clear() # 清除输入框已有的字符串 
element.send_keys('白月黑羽') # 输入新字符串

获取元素文本内容:element.text

element = wd.find_element(By.ID, 'animal') 
print(element.text)

获取元素属性:element.get_attribute('属性名')

element = wd.find_element(By.ID, 'input_name')
print(element.get_attribute('class'))

获取整个元素对应的HTML

element.get_attribute('outerHTML')#包括此元素
element.get_attribute('innerHTML')#不包括此元素

获取输入框里面的文字:element.get_attribute('value')

element = wd.find_element(By.ID, "input1") 
print(element.get_attribute('value')) # 获取输入框中的文本

frame切换/窗口切换

wd.switch_to.frame('frame1')  #根据id选择frame
wd.switch_to.frame('innerFrame')  #根据name选择frame
wd.switch_to.frame(wd.find_element(By.TAG_NAME, "iframe"))  #根据element选择frame
wd.switch_to.default_content()  #回到主html

切换到新的窗口

wd.switch_to.window(handle)

wd有个window——handles列表对象保存着所有的窗口

for handle in wd.window_handles: # 先切换到该窗口 
     wd.switch_to.window(handle) # 得到该窗口的标题栏字符串,判断是不是我们要操作的那个窗口
     if 'Bing' in wd.title: # 如果是,那么这时候WebDriver对象就是对应的该该窗口,正好,跳出循环,
         break

选择框

radio 和checkbox框

element = wd.find_element(By.CSS_SELECTOR, '#s_radio input[checked=checked]')
print('当前选中的是: ' + element.get_attribute('value')) 
wd.find_element(By.CSS_SELECTOR, '#s_radio input[value="小雷老师"]').click()

select 框

先导入select类 创建select对象

 from selenium.webdriver.support.ui import Select 
 select = Select(wd.find_element(By.ID, "ss_single"))#创建对象

使用select类的方法进行勾选或取消 常见方法如下

select.select_by_value('a')# 勾选value为a的选项
select.select_by_index(1) #勾选次序为1的选项
select.select_by_visible_text('b')  #勾选可见文本为b的选项
select.deselect_by_value('a')# 取消勾选value为a的选项
select.deselect_by_index(1) #取消勾选次序为1的选项
select.deselect_by_visible_text('b')  #取消勾选可见文本为b的选项
select.deselect_all() #取消勾选所有选项