首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Splinter单击“返回”

如何使用Splinter单击“返回”
EN

Stack Overflow用户
提问于 2014-05-25 18:59:20
回答 2查看 1.8K关注 0票数 4

当我使用Splinter库将文本输入到reddit的主搜索栏时,我想不出如何单击“返回”,因为它没有可搜索的按钮,所以我可能必须单击“返回”

我在这里看到了一个类似的问题,但它不适用于我的情况,也不适用于那个人所写的答案。

代码语言:javascript
复制
class NavigationPage(object):

    def __init__(self, br):
        self.br = br
        self.url = "http://reddit.com"

    @property
    def retrieve_reddit_search_bar(self):
        """
        Retrieves search bar by it's name
        """
        return self.br.find_by_name("q")

    def search(self, search_term):
        self.retrieve_reddit_search_bar.first.fill(search_term) # fills search bar
        self.br.execute_script("document.getElementsByName('q')[0].submit()")

在search方法中的第二条语句中,它在回溯时失败。如果有人知道如何做,你还能告诉我如何应用这个“返回”点击所有网站的业务吗?我想他们会执行类似的javascript来处理搜索请求。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-26 08:43:08

好吧,那似乎很有趣。这个想法不知从哪里冒出来,但现在却是这样:

“返回”键单击等同于'\n‘字符。这意味着每个搜索词都必须以一个新的行字符结束。通过这样做,返回键将被自动单击,我将被带到reddit中搜索结果!

因此,这个命令看起来应该是:

代码语言:javascript
复制
b = Browser()
b.visit('http://reddit.com')
b.fill('q', 'intp\n')

当selenium/splinter填充搜索项时,您会被带到搜索结果。

票数 3
EN

Stack Overflow用户

发布于 2015-11-02 15:08:11

我发现'\r‘可以替换'\n',因为下面的代码也能工作:

代码语言:javascript
复制
b = Browser()    
b.visit('http://reddit.com')
b.fill('q', 'intp\r')

它也适用于类型函数:

代码语言:javascript
复制
b = Browser()    
b.visit('http://reddit.com')
b.type('q', 'intp\r')

它似乎是由Selenium本身实现的,因为以下直接调用Selenium命令的代码的行为也是相同的:

代码语言:javascript
复制
b = Browser() 
b.visit('http://reddit.com')
element = b.driver.find_element_by_css_selector('[name={}]'.format('q'))
element.send_keys('intp\r')

这个post也提到了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23858867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档