【发布时间】:2020-03-11 20:05:36
【问题描述】:
我正在尝试单击单选按钮以显示添加新页面部分。但是我不断收到的错误代码是 AttributeError: 'WebElement' object has no attribute 'find_element_by_class'
我能够通过 class= 'button' 找到按钮,但是当我使用 .click() 时,我不断收到该错误。如果我遇到不可点击的错误,我了解。
我确实注意到,当未单击单选按钮时,aria-checked 元素设置为 = Flase,当它单击时它更改为 = True。所以我猜这就是我要解决这个问题所要做的。
所以我的问题是使用 python + selenium,我怎样才能将其更改为 true 以便显示其余部分?我对编码还是很陌生,所以我希望我能尽可能地解释我的情况,我终于弄清楚了 Shadow DOM。
这是我的代码
from selenium import webdriver
def expand_shadow_element(element):
shadow_root = cdriver.execute_script('return arguments[0].shadowRoot', element)
return shadow_root
#chrom driver
cdriver = webdriver.Chrome(executable_path='C:\\Users\\name\Downloads\\chromedriver.exe')
#open up page to chrome settings.
cdriver.get('chrome://settings/')
root1 = cdriver.find_element_by_tag_name('settings-ui')
shadow_root1 = expand_shadow_element(root1)
root2 = shadow_root1.find_element_by_id('main')
shadow_root2 = expand_shadow_element(root2)
root3 = shadow_root2.find_element_by_tag_name('settings-basic-page')
shadow_root3 = expand_shadow_element(root3)
root4 = shadow_root3.find_element_by_tag_name('settings-on-startup-page')
shadow_root4 = expand_shadow_element(root4)
root5 = shadow_root4.find_element_by_tag_name('controlled-radio-button')
shadow_root5 = expand_shadow_element(root5)
#error code herer code
root6 = shadow_root5.find_element_by_class('disc-wrapper').click()
【问题讨论】:
-
您能否提供您当前使用的代码,该代码会为您提供该错误消息。
-
@mikarm 是的,我已将我的代码添加到我的问题中。
-
它必须是
find_element_by_class_name()- 最后是_name。
标签: python selenium selenium-webdriver selenium-chromedriver