selenium--更改標籤的屬性值

前戲

在進行web自動化的時候,咱們有時須要獲取元素的屬性,有時須要添加,有時須要刪除,這時候就要經過js來進行操做了html

實戰

from selenium import webdriver import unittest def addAttribute(driver, elementobj, attributeName, value): ''' 封裝向頁面標籤添加新屬性的方法 調用JS給頁面標籤添加新屬性,arguments[0]~arguments[2]分別 會用後面的element,attributeName和value參數進行替換 添加新屬性的JS代碼語法爲:element.attributeName=value 好比input.name='test' ''' driver.execute_script("arguments[0].%s=arguments[1]" % attributeName, elementobj, value) def setAttribute(driver, elementobj, attributeName, value): ''' 封裝設置頁面對象的屬性值的方法 調用JS代碼修改頁面元素的屬性值,arguments[0]~arguments[1]分別 會用後面的element,attributeName和value參數進行替換 ''' driver.execute_script("arguments[0].setAttribute(arguments[1],arguments[2])", elementobj, attributeName, value) def getAttribute(elementobj, attributeName): # 封裝獲取頁面對象的屬性值方法
    return elementobj.get_attribute(attributeName) def removeAttribute(driver, elementobj, attributeName): ''' 封裝刪除頁面屬性的方法 調用JS代碼刪除頁面元素的指定的屬性,arguments[0]~arguments[1]分別 會用後面的element,attributeName參數進行替換 ''' driver.execute_script("arguments[0].removeAttribute(arguments[1])", elementobj, attributeName) class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_dataPicker(self): url = "D:\PycharmProjects\zouzou\dom.html" self.driver.get(url) element = self.driver.find_element_by_xpath('//input') # 向頁面文本框input標籤中添加新屬性name='search'
        addAttribute(self.driver, element, 'name', 'search') # 添加新屬性後,查看一下新屬性值
        print('添加的新屬性值%s="%s"' % ("name", getAttribute(element, "name"))) print('更改文本框中內容前的value的值:', getAttribute(element, 'value')) # 更改value的屬性值爲「這是更改後的值」
        setAttribute(self.driver, element, 'value', '這是更改後的值') print('更改後value的值爲:', getAttribute(element, 'value')) # 查看更改前input頁面元素中size屬性值
        print('更改前size的屬性值爲:', getAttribute(element, 'size')) # 更改input的屬性值爲20
        setAttribute(self.driver, element, 'size', 20) print('更改後size的屬性值爲:', getAttribute(element, 'size')) # 查看刪除input頁面元素value屬性前的值
        print('刪除前文本框value的值:', getAttribute(element, 'value')) # 刪除屬性值
        removeAttribute(self.driver, element, 'value') print('刪除後文本框value的值:', getAttribute(element, 'value')) if __name__ == '__main__': unittest.main()
相關文章
相關標籤/搜索