如何在selenium中按类名修改css

jim*_*wan 5 javascript python selenium selenium-webdriver

我正在学习如何使用Selenium,python并尝试csshttp://www.google.com上修改样式.例如,<span class="gbts"> ....</span>在该页面上.我想修改gbts课程.

browser.execute_script("q = document.getElementById('gbts');" + "q.style.border = '1px solid red';")
Run Code Online (Sandbox Code Playgroud)

是否有一个名为的API方法getElementByClass('gbts')

Arr*_*ran 4

您询问如何使用 JavaScript 通过 CSS 类获取元素。确实与硒无关。

无论如何,您有几个选择。您可以首先使用 Selenium 获取元素(所以在这里,是的,Selenium 是相关的):

element = driver.find_element_by_class_name("gbts")
Run Code Online (Sandbox Code Playgroud)

已经引用了这个元素,就可以很容易地给它一个边框:

driver.execute_script("arguments[0].style.border = '1px solid red';")
Run Code Online (Sandbox Code Playgroud)

(注意,arguments[0]

如果你真的必须使用JavaScript并且单独使用JavaScript,那么你的能力就非常有限。getElementByClassName这是因为JavaScript 中没有函数。仅getElementsByClassName这意味着它将返回与给定类匹配的元素列表。

因此,您必须专门针对列表中返回的要更改的元素。如果我想更改具有 类的第一个gbts元素,我会这样做:

driver.execute_script("document.getElementsByClassName('gbts')[0].style.border = '1px solid red';")
Run Code Online (Sandbox Code Playgroud)

我建议你选择第一个选项,这意味着你可以让 Selenium 为你做一些腿部工作。