峰大爷 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 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿