我在检查可点击的网络元素时遇到问题。 所以我必须检查字母系列,有些字母是可点击的,有些是不可点击的。
我用它来循环,以xpath
字母表开头#A'
然后进入循环直到字母' Z'。
但是,只要字母A的xpath
点击&通过它去字母' B'
这是不可点击的,因为整个脚本都会失败。
这是代码
for(int j=3; j<=26;j++) {
String T1 =".//*[@id='twctvEl']/div/div/div[1]/ul/li[";
String T2 = "]/a";
String T12 = T1+j+T2;
chrome.findElement(By.xpath(T12)).click();
String alpha =chrome.findElement(By.xpath(T12)).getText();
System.out.println("checking the alphabet"+alpha);
}
请在这里建议
注意:在A-Z的一系列alpha赌注中,只有B,Q,S,X,Y,Z不可点击,其余全部都是可点击的。
答案 0 :(得分:2)
您可以在元素之前添加等待以变为可点击:
for(int j=3; j<=26;j++)
{
String T1 =".//*[@id='twctvEl']/div/div/div[1]/ul/li[";
String T2 = "]/a";
String T12 = T1+j+T2;
WebElement el = chrome.findElement(By.xpath(T12));
WebDriverWait wait = new WebDriverWait(driver, timeout);
WebElement el= wait.until(ExpectedConditions.elementToBeClickable(element));
el.click();
String alpha =el.getText();
System.out.println("checking the alphabet"+alpha);
}
答案 1 :(得分:0)
您可以在点击之前检查元素是否可见并启用
WebElement letter = chrome.findElement(By.xpath(T12));
if (letter.isDisplayed() && letter.isEnabled()) {
letter.click();
}
答案 2 :(得分:0)
好吧,当你点击元素&#34; A&#34;时,它会带你到另一个页面或上下文,因此,在下一次迭代中,chrome驱动程序无法找到你的元素&#34 ; B&#34;使用xPath。