[英]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.