自动化4-操控元素(Python)

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浏览器

    

原文地址:https://www.cnblogs.com/Free-Ink/p/12533917.html