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

如何使用Selenium和Python点击SearchByParcel单选按钮

无法点击SearchByParcel单选按钮的解决方案

Python Selenium 实现

方法1:等待元素可点击后点击

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)

# 等待元素可交互后点击
parcel_radio = wait.until(EC.element_to_be_clickable((By.ID, "SearchByParcel")))
parcel_radio.click()

方法2:用JavaScript强制点击(解决元素不可交互问题)

如果常规点击无效,可能是元素被遮挡或存在交互限制,用JS直接触发点击:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)

parcel_radio = wait.until(EC.presence_of_element_located((By.ID, "SearchByParcel")))
driver.execute_script("arguments[0].click();", parcel_radio)

Java Selenium 实现

方法1:等待元素可点击后点击

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;

public class RadioButtonClick {
    public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();
        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
        
        WebElement parcelRadio = wait.until(ExpectedConditions.elementToBeClickable(By.id("SearchByParcel")));
        parcelRadio.click();
    }
}

方法2:用JavaScript强制点击

import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;

public class RadioButtonJSClick {
    public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();
        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
        
        WebElement parcelRadio = wait.until(ExpectedConditions.presenceOfElementLocated(By.id("SearchByParcel")));
        ((JavascriptExecutor) driver).executeScript("arguments[0].click();", parcelRadio);
    }
}

额外排查点

  • 确认元素是否处于iframe内:如果是,需先通过driver.switchTo().frame("iframe_id/name")切换到对应iframe再操作
  • 检查页面是否有动态加载逻辑,确保元素已完全渲染
  • 若元素被遮挡(如透明覆盖层),JS点击是最有效的绕过方式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:32:45