当前位置: 首页 > 知识库问答 >
问题:

我的Xpath是正确的

司马奇希
2023-03-14

我的Xpath是正确的

代码:-

package automation;

import java.time.Duration;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class residence {

public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub
    System.setProperty("webdriver.chrome.driver", ".\\lib\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.get("https://serviceonline.bihar.gov.in/resources/homePage/10/loginEnglish.htm");
    driver.findElement(By.xpath("//label[contains(text(),'General')]")).click();
    driver.findElement(By.xpath(("//p[contains(text(),'Residential')]"))).click();
    driver.findElement(By.xpath(("//div[@id='collapseOneOne']/div/p/a"))).click();
    
    /* Write Gender accordingly.Default is Male(M).(F) and (T)*/
    char gender='M';
    WebDriverWait wait=new WebDriverWait(driver,Duration.ofSeconds(30));
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='17290_1']")));
    if(gender=='M')
    {
        driver.findElement(By.xpath("//input[@id='17290_1']")).click();
    }
else if(gender=='F')
    {
        driver.findElement(By.xpath("//input[@id='17290_2']")).click();
    }
    else
    {
        driver.findElement(By.xpath("//input[@id='17290_3']")).click();
    }
}

}

这是运行测试用例的chrome窗口的截图:在这里你也可以看到元素是可见的

错误消息图像

共有1个答案

郝永思
2023-03-14

当点击链接时,它正在打开一个new tab,您需要在访问元素之前切换到new tab

package automation;

import java.time.Duration;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class residence {

public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub
    System.setProperty("webdriver.chrome.driver", ".\\lib\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.get("https://serviceonline.bihar.gov.in/resources/homePage/10/loginEnglish.htm");
    // Store the current window handle
    String parent_handle = driver.getWindowHandle();
    driver.findElement(By.xpath("//label[contains(text(),'General')]")).click();
    driver.findElement(By.xpath(("//p[contains(text(),'Residential')]"))).click();
    driver.findElement(By.xpath(("//div[@id='collapseOneOne']/div/p/a"))).click();
    
    // Switch to new window opened
    for(String winHandle : driver.getWindowHandles()){
       if(!parent_handle.equals(winHandle))
       {
        driver.switchTo().window(winHandle);        
       }    
     }
    
    /* Write Gender accordingly.Default is Male(M).(F) and (T)*/
    char gender='M';
    WebDriverWait wait=new WebDriverWait(driver,Duration.ofSeconds(30));
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//label[@for='17290_1']")));
    if(gender=='M')
    {
        driver.findElement(By.xpath("//label[@for='17290_1']")).click();
    }
else if(gender=='F')
    {
        driver.findElement(By.xpath("//label[@for='17290_2']")).click();
    }
    else
    {
        driver.findElement(By.xpath("//label[@for='17290_3']")).click();
    }
}

}
 类似资料:
  • 请,任何人都可以帮助我找到正确的XPath来检索日期值“07/05/2018 04:45” 我试过但没有成功: /输入[@type=“text”]@值 //*[@id="start Date"]

  • 问题内容: 我正在创建一个小型Java Jpanel游戏,其中应该有一个火箭,它通过箭头上下移动,并通过太空射击。 触发方法应按以下方式工作:按下空格键,东西触发并在屏幕上移动,然后当它碰到某个x时,它就会消失。此外,您只能发射一次,直到另一颗子弹消失为止。 我不知道我在做什么错。首先,在我的代码启动后,您会看到子弹在屏幕上飞舞。 2,子弹没有消失。 第三,即使其他子弹仍然可见,它也允许我再次开火

  • 以下是他们关于协会课程的演讲幻灯片: 有时,关联具有的属性或行为不仅仅属于两端的类。我们可以使用关联类对此进行建模。假设下图对学生分配到模块的模型进行了建模。 属性< code>finalMark不适合关联的任何“end”。此外,有必要为每个学生(每个模块)记录一个以上的分数,反之亦然。因此,属性< code>finalMark是< code>Student和< code>Module之间关联的属

  • 我正在使用selenium-java-2.53.jar点击一个网站并执行搜索操作。serach结果出来后,我需要读取数据。网站url为https://340bopais.hrsa.gov/CoveredEntitySearch。我在340B ID的文本框中放了一个值为CH02123B,然后单击“搜索”。在此之后,结果显示在一个表中。在这之前,它和硒的作用很好。但在此之后,当我尝试使用driver.

  • 我正在尝试用Selenium在Java中创建ajax wait方法,以获取配置所定义的尽可能多的结果。 我是否应该担心XPath表达式不是snytax正确的,或者Selenium找不到那个webelement?这个例外对我来说是模棱两可的....

  • 作者(AuthorID、AuthorName、Address、TelephoneNo、PublisherCode) 写一个查询,挑出并显示去年出书的作者的所有详细信息。 这是我回答的mysql查询,我想知道它是正确的还是有更好的方法写它?