Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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 Jsoup element.class.class selcet方法返回null_Java_Null_Css Selectors_Html Parsing_Jsoup - Fatal编程技术网

Java Jsoup element.class.class selcet方法返回null

Java Jsoup element.class.class selcet方法返回null,java,null,css-selectors,html-parsing,jsoup,Java,Null,Css Selectors,Html Parsing,Jsoup,我正在尝试访问元素中的元素 <form action="search.php" method="post" class="form-inline"> <div class="form-group"> <label for="value"><span class="text-uppercase">Lyrics Search:</span></label>

我正在尝试访问
元素中的
元素

<form action="search.php" method="post" class="form-inline">
            <div class="form-group">
                <label for="value"><span class="text-uppercase">Lyrics Search:</span></label>
                <input type="text" name="value" class="form-control input-sm">
            </div>
            <div class="form-group">
                <select name="field" class="form-control input-sm">
                    <option value="artist" >Artist</option>
                    <option value="title" >Title</option>
                    <option value="body"  >Body</option>
                </select>
                <button type="submit" class="btn btn-primary btn-sm">Submit</button>
            </div>
        </form> 
在-
中选择(“button.btn btn primary btn sm.form inline”).first()
我尝试使用两个类来访问
元素

那么我做错了什么

编辑
我刚注意到有3个!类添加到
元素。那更乱

要使用多个类搜索一个元素,您必须将多个选择器分组,如下所示
选择(“button.btn,button.btn-primary,button.btn-sm”)


有关详细信息,请参见选择器组合部分。

要使用多个类搜索一个元素,您必须将多个选择器分组,如下所示
选择(“button.btn,button.btn-primary,button.btn-sm”)


有关详细信息,请参阅选择器组合部分。

我从未听说过Jsoup中有一个名为HtmlPage的类。您应该使用调用Jsoup.connect(…)时将返回的文档类

您可以尝试以下代码:

Document document = Jsoup.connect("http://www.lyricsplanet.com/").get(); // Just connect
Element formElement = document.select("div#alphabet > form").first(); // Search for form
formElement.select("input[name=value]").val(yourSearchValue); // Set your search value
Element submitButton = formElement.select("button[type=submit]").first(); // Then search in form for submit button, otherwise your selector could find another submit button first
HTML表单元素(搜索字段和提交按钮)没有可以使用的标识符。唯一的方法是使用这些特定的css选择器

编辑: 你想以后再提交表格吗?然后,您不必搜索submit按钮。您可以在设置搜索值后提交表单。请尝试以下代码:

Document document = Jsoup.connect("http://www.lyricsplanet.com/").get();
FormElement formElement = document.select("div#alphabet > form").forms().get(0); // Use FormElement instead of Element
formElement.select("input[name=value]").val(yourSearchValue);
Document searchResult = formElement.submit().post(); // Do anything you want with the search result page/html

我从来没有听说过Jsoup中有一个叫做HtmlPage的类。您应该使用调用Jsoup.connect(…)时将返回的文档类

您可以尝试以下代码:

Document document = Jsoup.connect("http://www.lyricsplanet.com/").get(); // Just connect
Element formElement = document.select("div#alphabet > form").first(); // Search for form
formElement.select("input[name=value]").val(yourSearchValue); // Set your search value
Element submitButton = formElement.select("button[type=submit]").first(); // Then search in form for submit button, otherwise your selector could find another submit button first
HTML表单元素(搜索字段和提交按钮)没有可以使用的标识符。唯一的方法是使用这些特定的css选择器

编辑: 你想以后再提交表格吗?然后,您不必搜索submit按钮。您可以在设置搜索值后提交表单。请尝试以下代码:

Document document = Jsoup.connect("http://www.lyricsplanet.com/").get();
FormElement formElement = document.select("div#alphabet > form").forms().get(0); // Use FormElement instead of Element
formElement.select("input[name=value]").val(yourSearchValue);
Document searchResult = formElement.submit().post(); // Do anything you want with the search result page/html


因此,我将代码更改为
Element buttonElement=htmlPage.getHtmlDocument()。选择(“button.btn btn primary btn sm,”+“button.form inline,button.form group”)。first()并且它仍然返回
null
。您必须删除该部分
“button.btn btn primary btn sm”,
。提到的
select(“button.btn,button.btn-primary,button.btn-sm”)
将搜索一个
按钮
,该按钮有所有三个类
btn
btn primary
,以及
btn-sm
分配给它。让我看看这个问题。
类=“btn btn主btn sm
实际上是三类,分别是
btn
btn主btn
和`btn sm?!”?!不仅仅是一个类名?是的,三个单独的类分配给一个按钮。这就是为什么需要使用冒号进行分组。它的计算结果类似于分配了类btn、btn primary和btn sm的每个按钮,因此我将代码更改为
Element buttonElement=htmlPage.getHtmlDocument()。选择(“button.btn btn primary btn sm,“+”button.form inline,button.form group”)。first()并且它仍然返回
null
。您必须删除该部分
“button.btn btn primary btn sm”,
。提到的
select(“button.btn,button.btn-primary,button.btn-sm”)
将搜索一个
按钮
,该按钮有所有三个类
btn
btn primary
,以及
btn-sm
分配给它。让我看看这个问题。
类=“btn btn主btn sm
实际上是三类,分别是
btn
btn主btn
和`btn sm?!”?!不仅仅是一个类名?是的,三个单独的类分配给一个按钮。这就是为什么需要使用冒号进行分组。它的计算结果类似于分配了类btn、btn primary和btn sm的每个按钮
HtmlPage
都是我构建的类。只是连接而已,没什么特别的。那么你发布的代码是为了进入搜索,把我的字符串值放在那里?我已经更新了我的答案。您可以直接提交表单,而无需搜索提交按钮:),是的,此代码将在表单中设置您的搜索值。谢谢。您可以告诉我如何触发按钮单击并获取
HTML
页面?为什么要触发按钮单击?使用formElement.submit().post();表单将被提交,您将获得包含搜索结果的文档。您可以使用
class
属性作为标识符。但也可能是,页面上有多个包含这些类的元素。所以你不能确定你选择了正确的按钮。我更喜欢
id
name
属性,而不是使用
class
-选择器。如果元素没有任何
id
name
,我更喜欢使用特定的选择器,例如
div\alphabet>form
。然后您可以确定,您选择了正确的元素。
HtmlPage
是我构建的一个类。只是连接而已,没什么特别的。那么你发布的代码是为了进入搜索,把我的字符串值放在那里?我已经更新了我的答案。您可以直接提交表单,而无需搜索提交按钮:),是的,此代码将在表单中设置您的搜索值。谢谢。您可以告诉我如何触发按钮单击并获取
HTML
页面?为什么要触发按钮单击?使用formElement.submit().post();表单将被提交,您将获得包含搜索结果的文档。您可以使用
class
属性作为标识符。但也可能是,页面上有多个包含这些类的元素。所以你不能确定你选择了正确的按钮。我更喜欢
id
name
属性,而不是使用
class
-选择器。如果元素没有任何
id
name
我更喜欢使用特定的选择器,例如