峰大爷 2022-01-18 08:59 采纳率: 83.9%
浏览 529
已结题

'WebElement' object has no attribute 'find_elemet'

还有一个就是driver执行一个js脚本,进入到iframe也是出错,这个进入iframe因为代码原因无法使用switch

import undetected_chromedriver.v2 as uc
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import time


#coinlist 自动登入插件
def get_exe(driver,username,password,secret):
    driver.get('chrome-extension://bjggdloikijmgdhnlaiaeobomoddjcbe/popup.html')
    driver.find_element(By.NAME,"username").send_keys(username)
    driver.find_element(By.NAME,'password').send_keys(password)
    driver.find_element(By.NAME,'key').send_keys(secret)
    driver.find_element(By.XPATH,'//div[@class="confirm"]').click()
    time.sleep(1000)
def iscaptcha(driver):
    pass


def get_ext(driver,ele):
    js = 'return {}.querySelector("extensions-item").shadowRoot'.format(ele)
    js = '''
    
    for (var i=0;i<ele.length;i++)
{ 
    document.write(cars[i] + "<br>");
}
    '''
    return driver.execute_script(js)
def get_id(driver):
    driver.get('chrome://extensions/')
    shadowrootlist = get_shadow(driver)
    print(shadowrootlist)
    for shadow in shadowrootlist:
        # p = get_ext(driver,shadow)
        # print(p)
        print(shadow)  #可以正常输出一个WebElement对象
        s1 = shadow.find_elemet(By.XPATH,'//extensions-item')  #报错
        p= get_ext(driver,s1)
        print(p)
    #     div = get_ext(driver,shadow)
    #     print(div)
    # print(lis)
def get_shadow(driver):
    shadow_root = driver.execute_script("return document.querySelector('extensions-manager').shadowRoot.querySelector('cr-view-manager').querySelector('extensions-item-list').shadowRoot.querySelector('#container').querySelectorAll('extensions-item')")
    # shadow_root = driver.execute_script("return document.querySelector('extensions-manager').shadowRoot.querySelector('cr-view-manager').querySelector('extensions-item-list').shadowRoot.querySelector('.items-container')")
    return shadow_root
if __name__ == '__main__':
    options = Options()
    options.add_argument("--user-data-dir=" + r"C:/Users/Administrator/AppData/Local/Google/Chrome/User Data/")
    driver = uc.Chrome(options, version_main=96)
    username = 'pierrelattimer53@gmail.com'
    password = 'asyufguia646'
    secret = '7vqx4dzbp35un7xllg6mm7dy'
    # get_exe(driver,username,password,secret)
    # from selenium import webdriver
    # driver = webdriver.Chrome(chrome_options=options)
    get_id(driver)

img

  • 写回答

4条回答 默认 最新

  • CSDN专家-黄老师 2022-01-18 09:40
    关注

    将你代码改了一下,运行是没有结果输出,修改如下

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 1月18日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程