如何识别Selenium中的网络元素

时间:2017-02-16 20:35:21

标签: java selenium web-scraping jsoup

有一个网站https://www.directenergy.com/ny,我需要从下拉菜单中选择天然气,然后输入" 19082"在邮政编码文本框中,然后单击提交按钮,我得到一个新表单(URL保持不变)。我需要知道如何识别这种新形式的Web元素。我现在坚持使用新的页面内容。请帮帮我。

谢谢, 纳温。

2 个答案:

答案 0 :(得分:0)

你可以使用xpath, 要查找xpath,您可以使用本指南:

https://hedleyproctor.com/2011/05/tutorial-writing-xpath-selectors-for-selenium-tests/

应该看起来像这样:

  webDriver.findElement(
      By.xpath(
        "//*[@id="homeGetEnergy"]/div/div/form/div[3]/div[1]/input[1]"
      )
    ).sendKeys("19082");

  webDriver.findElement(
      By.xpath(
        "//*[@id="homeGetEnergy"]/div/div/form/div[3]/div[1]/button/span/b/em"
      )
    ).click();

答案 1 :(得分:0)

请尝试以下代码。

driver.get("https://www.directenergy.com/ny");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

new Select(driver.findElement(By.xpath("//select[@name='goto_service_type']"))).selectByVisibleText("Natural Gas");
Thread.sleep(1000);
driver.findElement(By.xpath("//input[@name='zipcode']")).sendKeys("19082");
driver.findElement(By.xpath("//button/span/b/em")).click();
Thread.sleep(8000);

if(driver.getTitle().equals("Sign Up For Natural Gas In Pennsylvania | Direct Energy"))
{
    System.out.println("Inside another page..");
}
else
{
    System.out.println("Redirection error.");
}