我希望它如何运作:
[if(driver.findElement(By.xpath("username")).isDisplayed())]
,如果未找到,则不会打印任何语句。 [else if(driver.findElement(By.id("username")).isDisplayed())]
和“else if if”语句为真,它将打印并执行循环中的任何内容.. <登记/>
让我知道上面的状态,我的下面代码是否有效......
public void mytrip()throws Exception{
driver.get("http://yahoomail.com/");
if(driver.findElement(By.xpath("username")).isDisplayed()){
driver.findElement(By.xpath("username")).click();
System.out.println("clicked");
} else if(driver.findElement(By.id("username")).isDisplayed()){
driver.findElement(By.id("username")).click();
System.out.println("clicked in else if");
}
}
问题:它正在检查是否有条件,并且在该条件下没有找到元素,它将从循环中退出而不会出现在其他地方...
根据以下概念我的上述代码应该有效...如果没有那么请让我知道如何使用...
class IfElseDemo {
public static void main(String[] args) {
int testscore = 76;
char grade;
if (testscore > 90) {
grade = 'A';
} else if (testscore < 80) {
grade = 'B';
} else if (testscore > 60) {
grade = 'C';
}
System.out.println("Grade = " + grade);
}
}
该程序的输出为:Grade = B
答案 0 :(得分:0)
当然它已经脱离了循环。 driver.findElement 如果找不到该元素,则抛出NoSuchElementException。您的xpath不好,因此找不到导致异常的元素。
Boolean isPresent = driver.findElements(By.yourLocator).size()&lt; 0
尝试类似的东西来检查元素。
答案 1 :(得分:0)
你可以试试这个。 如果显示元素,则单击元素,否则脚本继续。
List<WebElement> dynamicElement = driver.findElements(By.id("element"));
if (dynamicElement.size() != 0) {
System.out.println("Element present");
driver.findElement(By.id("element")).click();
} else {
System.out.println("Element not present");
}
答案 2 :(得分:0)
示例:在我的脚本中看起来像 step1,step2,step3,complete。 一段时间后,此步骤发生了变化 step1,step2,step3,step4,complete。这些步骤已相同的“XPATH”。所以我不知道如何给出“LOOP”条件。我附上了我的代码..plz 给出好的建议
for(int i=0; i<=10; i++) {
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS) ;
JavascriptExecutor js1=(JavascriptExecutor)driver;
js1.executeScript("window.scrollTo(0,document.body.scrollHeight)");
WebElement clickYESButton2 = driver. findElement(By.xpath("/html/body/div[1]/main/ui-view/ui-view/section/div[2]/div[2]/div/form/div/div[2]/div[1]/div/div/label[1]/span"));
clickYESButton2.click();
driver.manage().timeouts().implicitlyWait(100,TimeUnit.SECONDS) ;
System.out.println(driver.findElement(By.xpath("//*[@id=\"main-container\"]/ui-view/ui-view/section/div[2]/div[2]/div/form/div/div[1]/h5/span")).getText());
WebElement clickNEXTButton2 = driver. findElement(By.xpath("//div[@class='card']//button[contains(text(),'Next Step')][1]"));
clickNEXTButton2.click();
Thread.sleep(5000);
if(driver.findElement(By.xpath("//*[contains(text(),'Complete Review')]")).isDisplayed()){
driver.findElement(By.xpath("//*[contains(text(),'Complete Review')]")).click();
}
else {
reviewPgApplicationPage.clickYESButton.click();
}