HtmlUnit: 类型错误: 无法从 null 读取属性"mousedown"



可以使用JAVA点击htmlunit中的输入按钮,当我尝试以下代码时,它会给我异常"TypeError:无法从null读取属性"mousedown"

    HtmlSubmitInput search_button = (HtmlSubmitInput) page.getByXPath(".//*[@id='ctl00_ContentPlaceHolder1_PortalPageControl1_ctl08_PSCDocumentSearchControl1_searchButton']").get(0);
        HtmlPage results_page = search_button.click();

我还尝试将按钮转换为HtmlButtonHTML元素

有人能告诉我,对于输入类型"提交",什么是最好的转换吗?

好吧,我在两种方式中都使用了htmlunit来解析页面。xpath方式请求元素更安全,但您必须知道确切的名称。findbyid或findbyname更容易,但如果某个网站使用框架,那么html元素的id和name将不会相同,无论xpath如何。因此,我建议先尝试按id或名称获取按钮,看看它是否有效。

  HtmlSubmitInput button = form.getInputByName("searchButton");
  HtmlPage page2 = button.click();

我已经找到了解决方案,但我不知道它到底是如何工作的,当我在点击按钮之前添加一些延迟时,它工作得很好,可能是由于一些JS加载。

    HtmlSubmitInput search_button = (HtmlSubmitInput) page.getByXPath(".//*[@id='ctl00_ContentPlaceHolder1_PortalPageControl1_ctl08_PSCDocumentSearchControl1_searchButton']").get(0);
    Thread.sleep(10000);
    HtmlPage results_page = search_button.click();

相关内容

最新更新