本文介绍: 遇到的难点1:定位一个用户名解决方案1:元素定位优化Alt + Enter : 运行单元,在下面插入单元Shift-Enter : 运行单元,选中下个单元Ctrl-Enter : 运行单元Shift + Tab : 提示(对于函数提示)Ctrl + Shift + – : 分割单元ctrl + D : 删除行内ctrl + U : 撤销ctrl + / : 注释首先,右击→检查→F12中定位对应位置如fromimport By,‘kw’),‘wd’)

selenium一个自动化程序

7.17

  1. 结合selenium一个自动化程序,完成的功能(看哪些提交了,哪些人没提交)

代码

#安装需要的包
#并且下载对应谷歌浏览器版本的谷歌驱动 最好放在anaconda1的安装目录http://chromedriver.storage.googleapis.com/index.html
from selenium import webdriver
from selenium.webdriver.common.by import By

# 访问首页
browser = webdriver.Chrome()
#这里是提交作业网址
browser.get(r'http://')

#动态获得page的页数
page_element = browser.find_element_by_xpath('//*[@id="ct"]/div[6]/div')
page_text = page_element.text
page_number = int(page_text.split(' ')[1])
print(page_number)

#获取已提交的用户名单
# 创建一个集合用于存储已经打印过的用户名
printed_usernames = set()

# 创建一个计数器变量记录已经打印过的用户名数量
username_count = 0

# 循环遍历页面范围
for page in range(1, page_number+1):
    # 构建页面URL
    url = f'http://&page={page}'

    # 打开网页
    browser.get(url)

    # 获取页面中包含id的元素
    elements = browser.find_elements(By.XPATH, '//*[@id]')

    # 遍历元素,获取id值并进行定位
    for element in elements:
        element_id = element.get_attribute('id')
        if element_id.startswith('pid'):
            # 构建XPath表达式
            xpath = f'//*[@id="{element_id}"]/tbody/tr[1]/td[1]/div[1]/div/a'

            try:
                # 定位用户名元素
                username_element = browser.find_element(By.XPATH, xpath)
                # 获取用户名文本
                username = username_element.text

                # 检查用户名是否已经打印过,若未打印过则打印并加入集合,并增加计数器
                if username not in printed_usernames:
                    print(username)
                    printed_usernames.add(username)
                    username_count += 1
            except:
                print(f'未找到id为 {element_id} 的用户名元素')

# 输出统计的用户名数量
print(f'已提交的用户数量:{username_count}')

#获取未提交的用户名单
#已知的用户名单
known_usernames = [
    "***", "***"
]
# 获取未提交的用户名列表
unsubmitted_usernames = [username for username in known_usernames if username not in printed_usernames]

# 输出未提交的用户名列表
for username in unsubmitted_usernames:
    print(username)

原文地址:https://blog.csdn.net/Zlionheart/article/details/134693754

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_10399.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注