如何解决有没有一种方法可以使用Selenium python将具有值的新属性添加到元素?
这是HTML
<img src="//www.shahidpro.tv/uploads/articles/220cc817.jpg" width="408" height="605" vspace="" hspace="" border="0" alt="">
我要添加:
-
style="display: block; margin-left: auto; margin-right: auto;"
-
data-mce-style="display: block; margin-left: auto; margin-right: auto;"
和 -
data-mce-selected="1"
我尝试过:
image = webdriverwait(browser,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"body.mce-content-body#tinymce > p/a/img")))
browser.execute_script("arguments[0].style='display: block; margin-left: auto; margin-right: auto;'",image)
browser.execute_script("arguments[0].data-mce-style='display: block; margin-left: auto; margin-right: auto;'",image)
browser.execute_script("arguments[0].data-mce-selected='1'",image) ` but got no results nor errors
解决方法
比方说,您可以找到要更改的element
。
您可以使用js添加新属性:
driver.execute_script("arguments[0].setAttribute('style','display: block; margin-left: auto; margin-right: auto;');",element)
,
要添加三个新属性,您需要使用https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html的execute_script()
方法。
现在,您要添加以下属性:
-
style="display: block; margin-left: auto; margin-right: auto;"
-
data-mce-style="display: block; margin-left: auto; margin-right: auto;"
-
data-mce-selected="1"
添加它们的方法类似,作为演示添加属性data-mce-selected="1"
的示例,您需要为visibility_of_element_located()
引入Selenium,并且可以使用以下{{ 3}}:
-
使用
CSS_SELECTOR
:element = WebDriverWait(browser,20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,"img[src='//www.shahidpro.tv/uploads/articles/220cc817.jpg']"))) browser.execute_script("arguments[0].setAttribute('value','28/02')",element)
-
使用
XPATH
并一行:browser.execute_script("arguments[0].setAttribute('data-mce-selected','1')",WebDriverWait(browser,20).until(EC.visibility_of_element_located((By.XPATH,"//img[@src='//www.shahidpro.tv/uploads/articles/220cc817.jpg']"))))
参考文献
您可以在以下位置找到几个相关的详细讨论:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。