簡體   English   中英

如何使用Splinter單擊“返回”

[英]How to click “return” using Splinter

當我讓Splinter庫將文本輸入reddit的主搜索欄時,我無法弄清楚如何點擊“返回”,因為它沒有搜索按鈕,我可能必須點擊“返回”

我在這里看到了一個類似的問題,但它對我的情況不起作用,也是這個人寫的答案。

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()")

它在搜索方法的第二個語句中失敗並帶有回溯。 如果有人知道該怎么做,你能告訴我如何在所有網站上應用這種“返回”點擊業務嗎? 我想他們會執行類似的javascript來處理搜索請求。

好吧,這看起來很有趣。 這個想法突然冒出來了,但現在是:

“返回”鍵單擊等同於'\\ n'字符。 這意味着每個搜索詞必須以新的換行符結束。 通過這樣做,返回鍵被自動點擊,我被帶到reddit搜索結果!

所以,命令看起來像:

b = Browser()
b.visit('http://reddit.com')
b.fill('q', 'intp\n')

當selenium / splinter填充搜索詞時,您將被帶到搜索結果中。

我發現'\\ r'可以替換'\\ n',因為以下代碼也有效:

b = Browser()    
b.visit('http://reddit.com')
b.fill('q', 'intp\r')

它也適用於類型函數:

b = Browser()    
b.visit('http://reddit.com')
b.type('q', 'intp\r')

它似乎由Selenium本身實現,因為以下直接調用Selenium命令的代碼也表現相同:

b = Browser() 
b.visit('http://reddit.com')
element = b.driver.find_element_by_css_selector('[name={}]'.format('q'))
element.send_keys('intp\r')

這篇文章也提到了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM