检查可点击的网络元素时出错

时间:2016-09-05 04:52:13

标签: java selenium xpath selenium-webdriver

我在检查可点击的网络元素时遇到问题。 所以我必须检查字母系列,有些字母是可点击的,有些是不可点击的。

我用它来循环,以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不可点击,其余全部都是可点击的。

3 个答案:

答案 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。