You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium无法点击gosgc.com网站登录按钮问题求助

解决思路

这个登录按钮是Angular框架渲染的自定义a标签,没有绑定原生表单提交逻辑,也存在框架自定义的点击事件拦截,所以常规的.click()、.submit()方法容易失效,可按以下顺序尝试:

  • 第一步:先确保元素定位准确、已完全渲染
    优先使用CSS选择器div.user.user--login a.button定位元素,操作前加显式等待确认元素可点击,避免元素还没加载完成就操作:
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    
    # 最多等待10秒,直到登录按钮可点击
    login_btn = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, 'div.user.user--login a.button'))
    )
    
  • 第二步:优先使用JS执行点击操作
    绕开Selenium原生点击的事件拦截逻辑,直接调用浏览器原生点击方法:
    driver.execute_script("arguments[0].click();", login_btn)
    
  • 第三步:尝试模拟回车触发
    若JS点击仍失效,可给按钮发送回车事件触发点击:
    from selenium.webdriver.common.keys import Keys
    
    login_btn.send_keys(Keys.ENTER)
    
  • 第四步:排查元素遮挡问题
    先将按钮滚动到可视区域,排除其他悬浮元素、弹窗遮挡导致点击失效的问题:
    # 滚动到按钮可见位置
    driver.execute_script("arguments[0].scrollIntoViewIfNeeded();", login_btn)
    # 再执行点击
    driver.execute_script("arguments[0].click();", login_btn)
    
  • 第五步:模拟鼠标坐标点击
    极端情况可使用动作链模拟鼠标移动到按钮位置后点击:
    from selenium.webdriver.common.action_chains import ActionChains
    
    ActionChains(driver).move_to_element(login_btn).click().perform()
    

内容的提问来源于stack exchange,提问作者dkaveritt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:54:02