我在kivy中使用selenium编写了一个非常简单的脚本。
from kivy.uix.button import Button
from kivy.uix.floatlayout import FloatLayout
from kivy.app import App
from selenium import webdriver
class KivyButton(App):
def update(self,instance,*args):
driver = webdriver.Chrome()
driver.get('https://google.com')
def build(self):
self.layout = FloatLayout(size=(300,300))
self.mybtn=Button(text='Enter',on_press=self.update,pos=(500,300),size_hint=(.1,.1))
self.layout.add_widget(self.mybtn)
return self.layout
KivyButton().run()
它基本上只是一个按钮,当你点击它时,它会带你去谷歌。我正在使用buildozer在我的手机上转换/运行它。我已经将依赖项设置为python、kivy、selenium、chromedriver、urllib3。然后pip安装这些依赖项。应用程序会加载,但这是我尝试运行selenium时的输出。
python : PermissionError: [Errno 13] Permission Denied
在线查看时,如果未正确配置chromedriver,则会弹出此错误。使用此网站:https://chromedriver.chromium.org/getting-started/getting-started---android它指出chromedriver应该适用于android chrome,但在他们的例子中,他们使用'./chromedriver'
,所以我在我的程序中也添加了driver=webdriver.Chrome('./chromedriver')
,但这给了我同样的错误。有多个不同版本的chromedriver,因此我唯一能想到的是buildriver安装的chromedriver版本与我手机上的Chrome版本不兼容?但除此之外,我不知道为什么我会收到这个错误。
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('androidPackage', 'com.android.chrome')
driver = webdriver.Chrome('./chromedriver', options=options)
driver.get('https://google.com')
driver.quit()
你试过这些选择吗?
来源:https://chromedriver.chromium.org/getting-started/getting-started---android
尝试在buildozer.spec文件中添加所需的权限。