Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过Xpath查找元素并将其存储为字符串_Java_Selenium Webdriver - Fatal编程技术网

Java 通过Xpath查找元素并将其存储为字符串

Java 通过Xpath查找元素并将其存储为字符串,java,selenium-webdriver,Java,Selenium Webdriver,我正在尝试在网页上通过Xpath查找元素,并将其存储为字符串,以便以后使用。 我对这件事感到厌烦。 我认为我的代码没有做正确的事情。它打开Url进行我需要的搜索,但不存储任何元素,或者根本找不到它 你能帮我吗 谢谢 我的代码: import java.util.List; import java.util.concurrent.TimeUnit; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder;

我正在尝试在网页上通过Xpath查找元素,并将其存储为字符串,以便以后使用。 我对这件事感到厌烦。 我认为我的代码没有做正确的事情。它打开Url进行我需要的搜索,但不存储任何元素,或者根本找不到它

你能帮我吗 谢谢

我的代码:

import java.util.List;
import java.util.concurrent.TimeUnit;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Invocation;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import org.json.JSONObject;
import org.json.XML;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

import com.Uiproject.flickr.APIprop;


public class renaming {
    public static void main(String[] args) {
        WebDriver driver;
        String baseUrl;
        Client client;
        client = ClientBuilder.newClient();
        String FlickrUrl = APIprop.flickrurl;
        Invocation.Builder invocationBuilder = client.target(FlickrUrl)
                .request(MediaType.APPLICATION_JSON);
        Response response = invocationBuilder.get();
        String content = response.readEntity(String.class);
        System.out.println(content);
        JSONObject jsonresponse = XML.toJSONObject(content)
                .getJSONObject("rsp").getJSONObject("photos")
                .getJSONObject("photo");

        String title = jsonresponse.getString("title");

        driver = new FirefoxDriver();
        baseUrl = "http://www.airliners.net";
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        driver.get(baseUrl + "/");
        driver.findElement(By.id("q")).click();
        driver.findElement(By.id("q")).clear();
        driver.findElement(By.id("q")).sendKeys(title);
        driver.findElement(By.name("submit")).click();

        new Select(driver.findElement(By.name("sort_order")))
                .selectByVisibleText("Latest Additions First");
        driver.findElement(By.cssSelector("option[value=\"photo_id desc\"]"))
                .click();
        List<WebElement> resultList = driver
                .findElements(By
                        .xpath(".//html/body/div/div[3]/div/table[2]/tbody/tr[2]/td[1]/div[1]/table/tbody/tr[1]/td/table/tbody/tr[2]/td[2]/table/tbody/tr/td/font/a[1]"));
        for (WebElement resultItem : resultList) {
            String tabname = resultItem.getText();
            System.out.println(tabname);
        }

        driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);
        driver.quit();

    }
} 
import java.util.List;
导入java.util.concurrent.TimeUnit;
导入javax.ws.rs.client.client;
导入javax.ws.rs.client.ClientBuilder;
导入javax.ws.rs.client.Invocation;
导入javax.ws.rs.core.MediaType;
导入javax.ws.rs.core.Response;
导入org.json.JSONObject;
导入org.json.XML;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.firefox.FirefoxDriver;
导入org.openqa.selenium.support.ui.Select;
导入com.Uiproject.flickr.APIprop;
公共类重命名{
公共静态void main(字符串[]args){
网络驱动程序;
字符串baseUrl;
客户;
client=ClientBuilder.newClient();
字符串flickrul=APIprop.flickrul;
Invocation.Builder invocationBuilder=client.target(FlickrUrl)
.request(MediaType.APPLICATION_JSON);
Response=invocationBuilder.get();
字符串内容=response.readEntity(String.class);
系统输出打印项次(内容);
JSONObject jsonresponse=XML.toJSONObject(内容)
.getJSONObject(“rsp”).getJSONObject(“照片”)
.getJSONObject(“照片”);
String title=jsonresponse.getString(“title”);
驱动程序=新的FirefoxDriver();
baseUrl=”http://www.airliners.net";
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
获取(baseUrl+“/”);
driver.findElement(By.id(“q”))。单击();
driver.findElement(By.id(“q”)).clear();
driver.findElement(By.id(“q”)).sendKeys(title);
driver.findElement(按.name(“提交”))。单击();
新选择(driver.findElement(按.name(“排序顺序”))
。选择VisibleText(“最新添加内容优先”);
driver.findElement(By.cssSelector(“选项[value=\“photo\u id desc\”]))
。单击();
列表结果列表=驱动程序
.findElements(按
.xpath(“.//html/body/div/div[3]/div/table[2]/tbody/tr[2]/td[1]/div[1]/table/tbody/tr[1]/td/table/tbody/tr[2]/table/tbody/tr/td/font/a[1]”);
for(WebElement resultItem:resultList){
字符串tabname=resultItem.getText();
System.out.println(tabname);
}
driver.manage().timeouts().implicitlyWait(120,TimeUnit.SECONDS);
driver.quit();
}
} 
问题出在Xpath中 正确的方法如下:
//div[@id='content']/div/table[2]/tbody/tr[2]/td/div/table/tbody/tr/td/table/tbody/tr[2]/td[2]


谢谢大家

问题似乎在XPath中。如果可能,请使用相对XPath。您能告诉我您到底想要检索什么吗?都是飞机名吗?你确定你的xpath是正确的吗?如果正确,xpath似乎只返回1个元素(a[1])