VBA Selenium实现Langify登录手动干预后自动执行代码问询
VBA Selenium实现手动干预等待及Langify批量操作方案
核心问题答复
VBA Selenium完全支持手动干预等待需求,你可以通过两种方式实现30-45秒的等待:
- 固定时长强制等待:直接用
Wait方法让程序暂停指定秒数,给你足够时间输入密码和验证码 - 手动确认等待:弹出对话框,等你点击确认后再继续执行,比固定时长更灵活
修改后的完整代码
Option Explicit Dim driver As New Selenium.WebDriver Sub Langify_Automation() Dim shopifyPage As String Dim loginEmail As String Dim loginPwd As String Dim lastRow As Long Dim i As Long ' 初始化浏览器 driver.Start "chrome" driver.Get "https://v2.langify-app.com/" driver.Window.Maximize ' 最大化窗口方便操作 ' 读取Excel配置数据 shopifyPage = Sheet3.Range("H2").Text loginEmail = Sheet3.Range("H3").Text loginPwd = Sheet3.Range("H4").Text ' 输入Shopify店铺URL并跳转 driver.FindElementById("form_shop_url").SendKeys shopifyPage driver.FindElementById("form_install").Click ' 输入登录邮箱 driver.FindElementByCss("#account_email").SendKeys loginEmail ' --- 手动干预等待逻辑 --- ' 方式1:固定等待40秒(可按需调整) Application.Wait Now + TimeValue("00:00:40") ' 方式2:手动确认(注释掉方式1,启用此方式更灵活) ' MsgBox("请完成密码、验证码输入并点击登录,完成后点击确定继续", vbInformation) ' --- 后续自动化操作 --- ' 点击自定义导航按钮(替换为实际元素定位符) driver.FindElementByCss("YOUR_CUSTOM_NAV_SELECTOR").Click ' 点击全局按钮(替换为实际定位符) driver.FindElementByCss("YOUR_GLOBAL_BUTTON_SELECTOR").Click ' 获取Excel数据最后一行 lastRow = Sheet3.Cells(Sheet3.Rows.Count, "A").End(xlUp).Row ' 循环批量添加内容 For i = 1 To lastRow ' 点击右侧三点按钮(替换为实际定位符) driver.FindElementByCss("YOUR_THREE_DOTS_SELECTOR").Click ' 选择"添加新客户内容"(替换为实际定位符) driver.FindElementByCss("YOUR_ADD_NEW_CONTENT_SELECTOR").Click ' 输入第一列文本(假设文本在A列) driver.FindElementByCss("YOUR_INPUT_BOX_SELECTOR").SendKeys Sheet3.Range("A" & i).Text ' 输入第二列翻译文本(假设在B列) driver.FindElementByCss("YOUR_TRANSLATION_BOX_SELECTOR").SendKeys Sheet3.Range("B" & i).Text ' 点击保存按钮(替换为实际定位符) driver.FindElementByCss("YOUR_SAVE_BUTTON_SELECTOR").Click ' 等待保存完成(按需调整时长) Application.Wait Now + TimeValue("00:00:02") Next i ' 操作完成提示 MsgBox("批量翻译内容添加完成!", vbInformation) driver.Quit ' 关闭浏览器 End Sub
关键细节说明
- 元素定位符替换:代码中
YOUR_XXX_SELECTOR需要替换为Langify页面实际的CSS选择器/XPath,可通过Chrome开发者工具(F12)获取元素定位 - 等待逻辑选择:如果登录流程耗时不固定,优先用手动确认的方式(MsgBox),避免固定等待时间过长或过短
- 稳定性优化:对于页面加载慢的元素,可改用Selenium显式等待替代
Application.Wait,示例:driver.Wait 10000 ' 等待10秒直到元素出现 driver.FindElementByCss("SELECTOR", 10000).Click - Excel数据读取:确保Sheet3中A、B列是待翻译的原文和译文,可根据实际列位置调整代码中的列标识
内容的提问来源于stack exchange,提问作者Nooh_Noah
相关产品推荐
相关产品推荐

