尝试使用RSelenium

时间:2018-06-09 19:55:56

标签: r selenium rselenium

我在我拥有的网站上有一个嵌入式表单,我希望使用RSelenium进行填充和发送。

我似乎无法将元素作为第一步检测出来。显然,我希望能够填充和发送。

表单代码为:



<div id="form">

                            <form accept-charset="utf-8" method="POST" novalidate="">
                            <div class="form-group"><label for="form_Name" class="control-label">Full name<sup>*</sup></label><input required="" pattern="^***+(.****" class="form-control" title="Full name" id="form_Name" type="text" name="form_Name"></div>
                            <div class="form-group"><label for="form_Email" class="control-label">Email address<sup>*</sup></label><input required="" class="form-control" title="Email address" id="form_Email" type="email" name="form_Email"></div>
                            <div class="form-group"><label for="form_Company" class="control-label">Company name<sup>*</sup></label><input class="form-control" title="Company name" required="" id="form_Company" type="text" name="form_Company"></div>
                            <div class="form-group"><label for="custom_Message" class="control-label">Message</label><textarea class="form-control" title="Message" id="custom_Message" name="custom_Message"></textarea></div>
            
            <div><input class="btn-large btn-inverse btn" type="submit" value="Submit"></div>

            </form>
        </div>
&#13;
&#13;
&#13;

我已经尝试了所有选项:

remDr$findElement()

但得到同样的错误:

Error:   Summary: NoSuchElement
Detail: An element could not be located on the page using the given search parameters.

服务器肯定正常运行 - 我已成功截取网站页面的屏幕截图。

任何人都可以帮忙了解如何检测表单元素,以便我可以填充并发送吗?

1 个答案:

答案 0 :(得分:3)

您没有提及您使用<div data-namespace-title="foo">title</div> <div data-namespace-description="bar">description</div> <div data-namespace-button="foobar">button</div> <div data-dummy>dummy</div>尝试的内容。这是一个最小的工作示例,其中包含查找和填充“全名”框的表单和代码。首先,我将表单的HTML代码写入临时文件:

findElement()

加载html <- '<div id="form"> <form accept-charset="utf-8" method="POST" novalidate=""> <div class="form-group"><label for="form_Name" class="control-label">Full name<sup>*</sup></label><input required="" pattern="^***+(.****" class="form-control" title="Full name" id="form_Name" type="text" name="form_Name"></div> <div class="form-group"><label for="form_Email" class="control-label">Email address<sup>*</sup></label><input required="" class="form-control" title="Email address" id="form_Email" type="email" name="form_Email"></div> <div class="form-group"><label for="form_Company" class="control-label">Company name<sup>*</sup></label><input class="form-control" title="Company name" required="" id="form_Company" type="text" name="form_Company"></div> <div class="form-group"><label for="custom_Message" class="control-label">Message</label><textarea class="form-control" title="Message" id="custom_Message" name="custom_Message"></textarea></div> <div><input class="btn-large btn-inverse btn" type="submit" value="Submit"></div> </form> </div> ' tmp <- tempfile(fileext = ".html") cat(html, file = tmp) ,导航到该页面,找到表单元素并填充它:

RSelenium

您可以参考https://ropensci.org/tutorials/rselenium_tutorial/等资源获取更多信息。