如何在Kivy中运行Selenium(浏览器在Kivy窗口中打开)



我写了一个小脚本,用户在其中输入产品编号,然后用于查找项目。我正在使用chrome的网络驱动程序。它现在按预期工作。

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput
from kivy.uix.image import Image
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
class KivyButton(App):
def update(self,instance,*args):
driver = webdriver.Chrome()
driver.get('https://us.pandora.net/')
fill_box = driver.find_element_by_xpath('//*[@id="q"]')
fill_box.clear()
fill_box.send_keys(self.product_number.text)
try:
WebDriverWait(driver, 3).until(EC.element_to_be_clickable((By.XPATH,'/html/body/div[1]/div/div[1]/header/nav/div[2]/div[3]/div/div/div/div[2]/div/a/div[1]/img'))).click()
except:
print('invalid info')
driver.close()
def build(self):
self.layout  = FloatLayout(size=(300,300))
image=Image(source='pandora.jpg',allow_stretch=True,keep_ratio=False)
title=Label(text='Please Enter Product Number',color=[0,0,0,1],font_size='20dp', pos=(200,350),size_hint=(0.1,.1))
self.mybtn=Button(text='Enter',on_press=self.update,pos=(500,300),size_hint=(.1,.1))
self.product_number=TextInput(text='',font_size='40dp',pos=(100,300),size_hint=(.5,.1))
self.layout.add_widget(image)
self.layout.add_widget(self.product_number)
self.layout.add_widget(self.mybtn)
self.layout.add_widget(title)
return self.layout
KivyButton().run()

然而,我想把它作为一个应用程序在android上运行(这就是为什么我用Kivy编写它的原因(。我试着查找是否有适用于android网络浏览器的网络驱动程序,或者我在这里使用的网络驱动是否适用于移动版Chrome,但我什么都找不到。

此外,我不希望单独打开浏览器,而是希望浏览器在Kivy窗口中打开(即在应用程序窗口中显示浏览器(。目前,chrome浏览器是单独打开的。

如有任何帮助,我们将不胜感激!

我不相信你会用硒来做这件事。我相信你会想使用移动操作系统的原生浏览器。

还有另一个关于如何在这里做到这一点的堆栈溢出问题

最新更新