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

Selenium使用cssSelector定位Edit按钮无法找到元素问题求助

错误原因

你使用的^=是CSS属性开头匹配符,仅会匹配属性值以指定内容为起始的元素。你要定位的Edit按钮href属性完整值为section_a.php?cmnId=137674&origin=viewreferral.php,开头段是section_a.php,和你填写的viewreferral.php不匹配,因此定位失败。

修正方案

如果你需要匹配href属性包含viewreferral.php的元素,将匹配符替换为代表包含匹配的*=即可,修正后的定位代码如下:

Driver.findElement(By.cssSelector("a.ui-button.ui-corner-all.ui-widget[role='button'][href*='viewreferral.php']"));

可选优化方案

你可以通过增加筛选条件进一步缩小定位范围,避免页面其他元素造成误匹配:

  • 结合父元素class定位,直接匹配Edit按钮专属的href前缀:
Driver.findElement(By.cssSelector("div.order a[href^='section_a.php']"));
  • 匹配href里更精准的特征串:
Driver.findElement(By.cssSelector("a[href*='origin=viewreferral.php']"));

附加问题排查

如果修改选择器后仍提示找不到元素,可添加显式等待确保元素加载完成后再执行操作:

// 等待元素可点击最长10秒后再操作
new WebDriverWait(Driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.order a[href^='section_a.php']"))).click();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:24:00