我想使用aria-label
execute_script
属性的值
HTML
目标元素:
<th class="sorting" tabindex="0" rowspan="1" colspan="1" aria-label="Activate to sort column ascending">Company</th>
所以我试着跟随:
driver.execute_script('document.getElementsByTagName("th")[1].aria-label="Activate to sort column descending";')
但获得例外:
WebDriverException: Message: unknown error: Runtime.evaluate threw exception: ReferenceError: Invalid left-hand side in assignment
如果要使用
driver.execute_script('document.getElementsByTagName("th")[1].["aria-label"]="Activate to sort column descending";')
得到了
WebDriverException: Message: unknown error: Runtime.evaluate threw exception: SyntaxError: Unexpected token
那么设置aria-label
新值的正确陈述是什么?
答案 0 :(得分:4)
由于aria-label
是一个属性,您应该使用.setAttribute(...)
:
driver.execute_script("document.getElementsByTagName('th')[1].setAttribute('aria-label', 'Activate to sort column descending');")
答案 1 :(得分:3)
删除点。
driver.execute_script('document.getElementsByTagName("th")[1]["aria-label"]="Activate to sort column descending";')
在JavaScript中,a.foo
等同于a["foo"]
,但只有在foo
是有效标识符(即不包含连字符)时才允许使用前一种语法。