java selenium 元素点击不了

最近做了一个页面爬取,很有意思被机缘巧合下解决了。

这个元素很奇怪,用xpath可以定位元素,但是就是click()不了。

试过了网上搜的一些办法:

java 复制代码
//尝试一
WebElement a_tag = driver.findElement(By.xpath("xxx"));
a_tag.click();//点击不了,卡住

//尝试二
WebDriverWait wait = new WebDriverWait(driver, 100);
wait.until(ExpectedConditions.elementToBeClickable(a_tag)).click();//点击不了,卡住

//尝试三
Actions actions = new Actions(driver);
actions.moveToElement(a_tag).perform();
actions.click()//没报错,但实际没起作用

然后无意一次尝试,神奇的事情发生了:

java 复制代码
//把action和a_tag结合起来用,先action.perform一下,不要点,再用a_tag点
WebElement a_tag = driver.findElementByXpath("xxx");
 Actions actions = new Actions(driver);
 actions.moveToElement(a_tag).perform();//action先perform一下,不要点
 a_tag.click();//用元素点,顺利执行,并起作用

而且更神奇的是,只有这种组合(即先action.perform再a_tag.click)起作用,别的组合和顺序都不起作用。

虽然问题解决了,但是还不知道是什么原理。有大神了解吗?

相关推荐
Bellafu6662 小时前
selenium定位元素失败,常见错误有哪些?
selenium·测试工具
傻啦嘿哟8 小时前
用Selenium模拟登录淘宝并采集商品信息:从基础到实战
selenium·测试工具
起个破名想半天了11 小时前
五秒盾解决方案之Selenium
selenium·cloudflare·反爬
robinspada11 小时前
用mitmproxy替代selenium-wire
selenium·测试工具·mitmproxy·selenium-wire
我的xiaodoujiao11 小时前
从 0 到 1 搭建完整 Python 语言 Web UI自动化测试学习系列 17--测试框架Pytest基础 1--介绍使用
python·学习·测试工具·pytest
Bellafu66611 小时前
selenium的css定位方式有哪些
css·selenium·tensorflow
Bellafu66611 小时前
selenium对每种前端控件的操作,python举例
前端·python·selenium
Bellafu66612 小时前
下载selenium-ide及使用
ide·selenium·测试工具
将车24412 小时前
自动化测试脚本环境搭建
python·测试工具·自动化
天才测试猿14 小时前
WebUI自动化测试:POM设计模式全解析
自动化测试·软件测试·python·selenium·测试工具·设计模式·测试用例