我正在尝试使用Java硒Web驱动程序从站点https://www.xe.com/currencyconverter/的两个下拉列表(货币选择)中选择值。
我还需要代码在货币转换后验证转换
我尝试过:
1. Custom XPath.
2. Normal select using select keyword.
3. Tried using mouse actions but couldn't locate. Looks like it needs javascript executor but don't know the code.
org.openqa.selenium.ElementClickInterceptedException:
元素点击被拦截:元素<div class="css-1wy0on6 converterform-dropdown__indicators">...</div>
不可点击
答案 0 :(得分:0)
很可能您有这个Cookie Consent Disclaimer会拦截您的输入事件,因此您不能有效地单击下拉值。
在Selenium Java API中,您最好的朋友是WebDriverWait类:
WebDriverWait wait = new WebDriverWait(driver, 5);
我建议通过上述WebDriverWait与Explicit Wait一起使用ExpectedConditions,以便:
首先确保cookie免责声明可见并且可以单击,然后单击它:
wait.until(ExpectedConditions
.elementToBeClickable(
By.xpath("//button[contains(@class,'privacy') and contains(text(), 'OK')]")))
.click();
然后对第一个下拉列表执行相同的操作:
wait.until(ExpectedConditions
.elementToBeClickable(
By.id("from")))
.click();
最后通过再次单击选择您选择的货币:
wait.until(ExpectedConditions
.elementToBeClickable(
By.xpath("//span[contains(text(),'GBP')]")))
.click();
用您需要的货币代替GBP