首页 > 编程问答 >剧作家,从下拉菜单中选择选项

剧作家,从下拉菜单中选择选项

时间:2024-07-25 05:58:18浏览次数:8  
标签:python linux automation playwright

我刚刚开始做一些自动化工作,正在寻求登录当地高尔夫俱乐部网站的建议,以便我最终可以跟踪障碍。希望有人可以建议最好的登录方式。干杯

https://www.masterscoreboard.co.uk/ClubIndex.php?CWID=6040

尝试观看一些YouTube视频并在这里寻找类似的主题,但认为每个网站使用不同的格式来列出可选择的选项我不确定应该使用哪些值

    from playwright.sync_api import sync_playwright  
    import time  

    with sync_playwright() as p:  
        browser = p.chromium.launch(headless=False)  
        page = browser.new_page()  
        page.goto("https://www.masterscoreboard.co.uk/ClubIndex.php?CWID=6040")  
        print(page.title())  
        page.get_by_placeholder("Select Your Name").select_option(label="MacGillivray, Alan ")  
        time.sleep(5)  
        browser.close()  

该代码段可以帮助使用 Playwright 自动登录该网站:

from playwright.sync_api import sync_playwright  
import time  

with sync_playwright() as p:  
    browser = p.chromium.launch(headless=False)  
    page = browser.new_page()  
    page.goto("https://www.masterscoreboard.co.uk/ClubIndex.php?CWID=6040")  
    print(page.title())  

    # 使用 Select Your Name 下拉菜单中的值替换 "Your Username" 
    page.select_option('select[name="MemID"]', 'Your Username')

    # 使用的实际密码替换 "Your Password"
    page.get_by_placeholder("Password").fill("Your Password")
    page.get_by_role("button", name="Login").click()

    time.sleep(5)  
    browser.close() 

此代码执行以下操作:

  1. 导入必要的库: 导入 sync_playwright 用于浏览器自动化,以及 time 用于暂停执行。
  2. 启动 Playwright: 创建一个 Playwright 实例并启动一个 Chromium 浏览器。
  3. 导航到网站: 浏览器导航到提供的高尔夫俱乐部网站。
  4. 打印页面标题: 打印页面标题以确认浏览器是否到达了正确的页面。
  5. 选择的用户名:
  6. 此代码假定下拉菜单中有一个包含用户名列表的 <select> 元素。
  7. 它使用选择器 'select[name="MemID"]' 来查找下拉菜单。可能需要根据网站的 HTML 代码调整此选择器。
  8. 它使用 page.select_option() 方法选择与的用户名匹配的选项。 用的实际用户名替换 "Your Username"
  9. 填写密码:
  10. 使用选择器 get_by_placeholder("Password") 定位密码输入字段,并使用 fill() 方法输入的密码。 用的实际密码替换 "Your Password"
  11. 点击登录按钮:
    • 此代码使用 get_by_role 方法查找登录按钮。它假定登录按钮有一个 "Login" 角色。
    • 它使用 click() 方法点击登录按钮。
  12. 等待并关闭浏览器: 脚本暂停 5 秒钟,让有机会查看登录后的页面,然后关闭浏览器。

重要提示:

  • 在使用此脚本之前,请用的实际用户名和密码替换 "Your Username" 和 "Your Password"。
  • 为了安全起见,请考虑将的用户名和密码存储在脚本外部的单独文件中,并在脚本中安全地引用它们。
  • 自动化登录可能违反网站的服务条款。请在使用此脚本之前查看高尔夫俱乐部网站的服务条款。

如果在运行此代码时遇到问题,请提供网站的 HTML 代码(特别是下拉菜单和登录表单的部分),以便我可以为提供更具体的帮助。

标签:python,linux,automation,playwright
From: 78790569

相关文章

  • VS Code Python - 如果括号(括号、大括号等)未关闭,内联建议不起作用
    我遇到的问题是,当我在未闭合的括号或方括号“内部”开始变量名称时,VSCode将不会显示任何建议。但是,如果在键入变量名称之前闭合括号,则建议效果很好。如果我可以避免它,我宁愿不将自动完成括号关闭设置为True也不使用TabOut扩展。第一个屏幕截图显示建议在闭括号/方......
  • 在 Azure 上部署代码时使用 Python 的多处理模块是否有意义?
    我们的团队在Azure机器学习(AML)上部署了一个Python脚本来处理存储在Azure存储帐户上的文件。我们的管道由一个ForEach活动组成,该活动调用每个或列出的文件的Python脚本。从Azure数据工厂(ADF)运行它会触发多个单独的管道同时运行......
  • 我已成功安装 pypdf2 但无法将其导入到我的 python 文件中
    我已经成功安装了pypdf2模块,但在导入它时,我发现该模块丢失了。我尝试使用fromPyPDF2importPdfReader导入,但它不起作用此问题的各种解决方案是什么?在尝试导入PyPDF2时遇到问题。以下是可能导致此问题的一些常见原因和解决方案:安......
  • Python3打开图片时请求ConnectionResetError(10054)
    我试图从'http://xxx.jpg'之类的网站下载图片。代码:headers={'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/66.0.3359.139Safari/537.36'}url='http://xxx.jpg'resp......
  • Jupyter Notebook 环境中的 Python 版本不匹配
    我遇到Jupyter笔记本启动横幅中报告的Python版本与我在笔记本中查询python--version时显示的版本之间的差异。启动横幅指示Python3.11.9,但是当我运行!python--version时,它返回Python3.11.7。我所做的步骤:basecondahas3.11.7versio......
  • Python XML 解析:字符串中的“<”被阻塞
    我有一个使用ET.XMLParser来解析CppCheckXML报告文件的Python模块。当尝试解析字符串中包含“<”的XML元素中的属性之一时,它会令人窒息,它会将其解释为格式错误的XML,例如:<errormsg="Includefile<iostream>notfound.">(注意字符和“iostream”之间的空格必须放......
  • 任意几行代码要成为Python中的函数需要什么?
    我正在上一门计算机科学课,我的任务是创建一个程序来实现一个带有参数的函数。我的老师告诉我,下面的代码不是一个函数,这让我很困惑,对于将某些代码行归类为“函数”所需的条件,我感到很困惑。defgame(numbers,max_turns,pfl,tgl):turns=0flag=Falseprint("You......
  • 如何使用 Python 创建新的 Azure 订阅?
    我正在尝试使用PythonSDK以编程方式创建新的Azure订阅。我发现的对AzurePythonSDK的唯一引用是这个这是我最终得到的结果:importazure.mgmt.billingimportazure.mgmt.subscriptioncreds=AzureCliCredential()client_name='test'defcreat......
  • 用于打印脚本输出的 Python 实用程序
    我可以发誓有一个实用程序可以打印一个python脚本,其输出交织在一起。例如,给定一个脚本:a=2b=3print(a+b)print(a*b)该实用程序将输出a=2b=3print(a+b)#>5print(a*b)#>6有人知道该实用程序的名称吗?我最难找到它。谢谢你!描述的实用程序没有标......
  • Linux Kernel Utilization Clamping简介
    随着linux内核调度技术的不断演进,目前存在多个调度类(stop、deadline、rt、cfs、idle)以满足不同性质和要求的任务(task)的调度需求。对于用户空间来说,完全公平调度器(CFS)和实时调度器(RT)是绝大多数任务所使用的,但是基于POSIXPriority算法不足以支撑关于选核和调频的调度器特性。关于任......