python版
选择元素后,代码返回元素对应的WebElement对象,通过这个对象,可以操控元素。
操控元素包括:(点击、输入字符串、获取元素包含的信息)
1. 点击元素: 调用元素WebElement对象的click方法。
当调用WebElment对象的 click() 方法去点击元素时,浏览器接收到自动化命令,顶级的时该元素的中心点位置。
2. 输入框:调用元素WebElement对象的 send_keys() 方法。
当需要把输入框中已有内容清除掉,可以使用WebElement对象的clear方法。
1 from selenium import webdriver 2 from time import sleep 3 wd = webdriver.Chrome(r'D:BrowserDriverchromedriver.exe') 4 wd.get('http://cdn1.python3.vip/files/selenium/test3.html') 5 element=wd.find_element_by_id('input1') 6 # 清除输入框中已有的字符串 7 element.clear() 8 element.send_keys('第三个自动化学习!') 9 sleep(10)
3. 获取元素信息
a. 获取元素的文本内容:通过WebElement对象的 text 属性,可以获取元素 展现在界面上的文本内容。
b. 获取元素的属性:通过WebElement对象的 get_attribute 方法 来获取 元素的属性值。
quit() 退出浏览器窗口及浏览器驱动
1 # 例: 2 from selenium import webdriver 3 wd = webdriver.Chrome(r'D:BrowserDriverchromedriver.exe') 4 wd.get('https://sc2.blizzard.cn/media/artwork/#/1') 5 element=wd.find_element_by_id('j-search') 6 wd.implicitly_wait('10') 7 print(element.get_attribute('class')) 8 # webdriver提供的退出 9 wd.quit()
c. 获取整个元素对应的HTML文本内容:使用 element.get_attribute('outerHTML')
获取某个元素内部的HTML文本内容:使用 element.get_attribute('innerHTML')
1 # 基于上例的网站 2 from selenium import webdriver 3 wd=webdriver.Chrome(r'D:BrowserDriverchromedriver.exe') 4 wd.get('https://sc2.blizzard.cn/media/artwork/#/1') 5 element=wd.find_element_by_id('j-search') 6 wd.implicitly_wait(5) 7 print(element.get_attribute('outerHTML')) 8 print(element.get_attribute('innerHTML')) 9 wd.quit()
d. 获取输入框里面的文字:对于imput输入框的元素,要获取里面的输入文本,使用 element.get_attribute('value')
1 from selenium import webdriver 2 wd=webdriver.Chrome(r'D:BrowserDriverchromedriver.exe') 3 wd.get('http://www.baidu.com') 4 wd.find_element_by_id('kw') 5 element=wd.dend_keys('百度 ') 6 wd.implicitly_wait(10) 7 print(element.get_attribute('value'))
e. 获取元素文本内容2:元素的文本内容没有展示在页面上,或者没有完全展示在界面上,使用 element.get_attribute('innerText'), 或者element.get_attributte('textContent')
注:更换Firefox浏览器,指定驱动路径时经常出错,使用executable_path没有报错了。
executable_path指定了chromedriver所在的路径,程序运行时就会到该路径下启动chrome浏览器