script元素属性

 

HTML4.01为<script>元素定义了6个属性:

分别为async,defer,src,type,language,charset.这6个属性均为可选属性,重点理解async和defer用法:

1.aysnc:(异步脚本)立即下载脚本,但不妨碍页面中其他操作。----------只对外部脚本有效。在XHTML中应该书写为async="async"。异步脚本一定先于页面的load事件执行,但可能会在DOMContentLoaded事件触发前或后执行。

2:defer:(延迟脚本)表示脚本可以延迟到遇到</html>标签时才执行。也就是说脚本可以被延迟到整个页面都解析完毕后再运行。设置该属性后会立即下载脚本但延迟执行。

-----------只对外部脚本有效,最好只对一个外部脚本设置defer属性。

外部js脚本区别于嵌入javascript代码,其优势在于:

1.能够使代码更清晰,简介明了,对于某个功能的js代码只需找到相应的外部脚本文件,便于维护。

2.对于多个页面相同功能只需使用同一外部js文件,这样这个文件只需下载一次,最终加快页面加载速度。

通常将css文件,script文件的引用都放在<body>标签中的底部,以便于更快速的将页面内容显示在浏览器中,优化了用户体验性能。

 

### 使用 Selenium 获取和设置元素属性 #### 获取元素属性 为了获取页面上某个特定元素属性,可以利用 `get_attribute` 方法。此方法接收一个参数即要查询的属性名称,并返回该属性对应的值。 对于单个属性而言: ```python from selenium import webdriver from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("http://www.example.com") # 定位到目标元素并获取其 'href' 属性 element = driver.find_element(by=By.TAG_NAME, value="a") link_url = element.get_attribute('href') print(f"The link URL is: {link_url}") ``` 当需要一次性获取多个属性时,则可以通过执行 JavaScript 来实现更高效的操作[^3]。下面是一个例子展示如何取得指定 HTML 元素的所有属性及其对应值: ```python from selenium import webdriver from pprint import pprint driver = webdriver.Firefox() driver.get('https://example.com') element = driver.find_element_by_xpath('//div[@id="some-id"]') attrs = driver.execute_script( ''' var items = {}; for (index = 0; index < arguments[0].attributes.length; ++index) { items[arguments[0].attributes[index].name] = arguments[0].attributes[index].value; } return items; ''', element) pprint(attrs) ``` #### 设置元素属性 虽然 Selenium 并未直接提供修改 DOM 节点属性的方法,但是仍然能够借助浏览器内置的支持——JavaScript来完成这项工作。这里给出一段简单的代码片段用于更改网页上的按钮文字颜色为例说明这一过程: ```javascript // 修改样式类名 driver.execute_script("arguments[0].className='new-class'", element); // 或者直接改变内联样式 driver.execute_script("arguments[0].style.color='red';", button_element); ``` 另外值得注意的是,在某些情况下可能还需要考虑使用 `setAttribute()` 函数来进行更加复杂的属性更新操作。 关于复选框或单选按钮的状态切换,Selenium 提供了专门的方法如 `click()` 和 `is_selected()` 可以方便地对其进行控制与检测[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值