我正在使用python + splinter进行浏览器自动化。我的结构是这样的
[root]
+--start.py
+--end.py
+--[module1]
| +--mod11area1.py
| +--mod12area2.py
| +--[module1_2]
| | +--mod121area1.py
| +--[module1_3]
| +--mod131area1.py
+--[module2]
+--mod21area1.py
Run Code Online (Sandbox Code Playgroud)
start.py设置浏览器的初始化和打开,内部模块.py对每个模块执行操作,然后在执行时通过在此功能后面添加内容,将该结构合并到一个脚本中:
start.py
mod11area1.py
mod12area2.py
mod121area1.py
mod131area1.py
mod21area1.py
end.py
Run Code Online (Sandbox Code Playgroud)
我的问题是,有更好的方法吗? 我对此很陌生,通常只创建一个脚本。由于我的项目不断扩大,因此我不得不雇用其他几个人来编写脚本。因此,我想出了这种方法。
我正在尝试填写两个表格并登录我的银行网站.
我可以获得填写用户名的第一个表单,但我似乎无法获取填写密码的表单.
这是我正在使用的代码:
from splinter import Browser
username2 = '***'
password2 = '***'
browser2 = Browser()
browser2.visit('http://mijn.ing.nl')
browser2.find_by_css('.firstfield').fill(username2)
browser2.find_by_id('#easnhbcc').fill(password2)
Run Code Online (Sandbox Code Playgroud)
这是完整的追溯:
/usr/local/bin/python2 "/Users/narekaramjan/Dropbox/Python/Python 273/Test.py"
Traceback (most recent call last):
File "/Users/narekaramjan/Dropbox/Python/Python 273/Test.py", line 26, in <module>
browser2.find_by_id('#easnhbcc').fill(password2)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/splinter/element_list.py", line 73, in __getattr__
self.__class__.__name__, name))
AttributeError: 'ElementList' object has no attribute 'fill'
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
browser2.find_by_name('easnhbcc').fill(password2)
Run Code Online (Sandbox Code Playgroud)
如何获取密码表格?
我是Splinter的新手,但我几次使用python.所以我希望使用splinter自动化网站.但是当我执行它时,我得到"ImportError:无法导入名称浏览器"错误.
这是我的代码.
from splinter import Browser
browser = Browser()
browser.visit('http://google.com')
browser.fill('q', 'splinter - python acceptance testing for web applications')
browser.find_by_name('btnG').click()
if browser.is_text_present('splinter.readthedocs.org'):
print "Yes, the official website was found!"
else:
print "No, it wasn't found... We need to improve our SEO techniques"
browser.quit()
Run Code Online (Sandbox Code Playgroud)
在终端这是我得到的.
Traceback (most recent call last):
File "splinter.py", line 3, in <module>
from splinter import Browser
File "/var/www/project/splinter.py", line 3, in <module>
from splinter import Browser
ImportError: cannot import name Browser
Run Code Online (Sandbox Code Playgroud)
如何在没有任何错误的情况下运行此程序?我已经提到类似问题的解决方案,如删除splinter.pyc,但它没有帮助我.
我试图使用 splinter,它是一个基于 selenium 的网络浏览包。
最初我尝试运行并收到错误,即使我已经下载了 chromedriver。
from splinter import Browser
browser = Browser()
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
Run Code Online (Sandbox Code Playgroud)
不过我设法在之后运行代码brew install chromedriver。我很好奇brew install 到底将路径粘贴到了哪里。我查看 .bash_profile 并没有发现任何差异。
我试图理解分裂功能,我试图在网上找到,但我找不到关于分裂的实用例子的好文档,所以我在这里问了几个问题,这样它会帮助初学者试图学习分裂:
首先,我混淆了splinter中的实际css选择器,我看到了两种方法:
browser.find_by_css()
Run Code Online (Sandbox Code Playgroud)
要么
browser.find_by_css_selector()
Run Code Online (Sandbox Code Playgroud)
它们之间有什么区别,为什么第二个不能在当前的分裂中工作?
现在我的原始问题是如何选择任何类下的任何标签,如何选择任何ID下的任何标签?
我试图找到,但我发现大多数stackoverflow问题的分裂"如何在下拉列表中选择选项值",并且分裂文档非常好,但问题是他们的方法没有足够实用的示例.
所以,如果我有这个HTML代码:
<div class="medium-widget success-story-category">
<h2 class="widget-title"><span aria-hidden="true" class="icon-get-started"></span>Getting Started</h2>
<p>Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages. The following pages are a useful first step to get on your way writing programs with Python!</p>
<ul>
<li><a href="https://wiki.python.org/moin/BeginnersGuide/Programmers">Beginner's Guide, Programmers</a></li>
<li><a href="https://wiki.python.org/moin/BeginnersGuide/NonProgrammers">Beginner's Guide, Non-Programmers</a></li>
<li><a href="https://wiki.python.org/moin/BeginnersGuide/Download">Beginner's Guide, Download & Installation</a></li>
<li><a href="https://wiki.python.org/moin/BeginnersGuide/Examples">Code sample and snippets for Beginners</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
然后 :
如何通过选择选择 …
我想找到这样的元素:
<input type="submit" value="login" class="button button-line navy" onclick="...">
Run Code Online (Sandbox Code Playgroud)
我正在使用这种方法,但它什么也没找到:
browser.find_by_css('.button .button-line .navy').first().click()
我在Python中使用Splinter库。我希望根据链接文本单击链接,但这不起作用。
该链接包含在源代码中,例如:
<a href="link here"><span style="color:#000000;">link text here</span></a>
Run Code Online (Sandbox Code Playgroud)
使用' browser.click_link_by_text('link text here')'会产生错误:
splinter.exceptions.ElementDoesNotExist:找不到带有文本链接的元素“此处链接文本”
无法找到使用 splinter 进行滚动的命令。无论我在哪里搜索,都只能找到硒而不是碎片。