Command Taget
click link=14
但我不知道如何在Python中运行它。理想的最终结果是我拥有最终页面的来源。
是否有run_test_case命令?或者我是否必须编写单独的命令行?我宁愿错过测试用例和实际自动化之间的联系。每个网站都告诉我如何加载初始页面以及如何从该页面获取内容,但如何输入值并点击内容并获取源代码?
我见过:
submitButton=driver.find_element_by_xpath("....")
submitButton.click()
确定。并输入值?在我提交页面后获取源代码?我很抱歉这是如此普遍,但我真的已经四处寻找并且没有找到一个好的教程,它实际上告诉我如何做我认为是Selenium Webdriver的重点。
答案 0 :(得分:1)
我从未使用过IDE。我只是亲自编写测试或站点自动化。
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.google.com")
print browser.page_source
你可以把它放在一个脚本中然后做python wd_script.py
或者你可以打开一个Python shell并手动输入它,看着浏览器打开,看着它被每一行驱动。为此,您显然也需要安装Firefox。并非所有版本的Firefox都适用于所有版本的Selenium。每个的当前最新版本(Firefox 19,Selenium 2.31)都可以。
显示登录表单的示例可能如下所示:
username_field = browser.find_element_by_css_selector("input[type=text]")
username_field.send_keys("my_username")
password_field = browser.find_element_by_css_selector("input[type=password]")
password_field.send_keys("sekretz")
browser.find_element_by_css_selector("input[type=submit]").click()
print browser.page_source
如果你对css很了解,这种东西就更容易编写。尝试查找在JavaScript中生成的元素可能会导致奇怪的错误。例如,你可能会在它们存在之前寻找它们。通过放入time.sleep一段时间并查看是否能解决问题,很容易判断是否是这种情况。更优雅的是你可以抽象某种一般等待元素的功能。
如果你想在一系列集成测试中运行Webdriver会话,那么我建议使用Python的unittest来创建它们。您将浏览器驱动到正在测试的站点,并断言您正在执行的操作使页面处于您期望的状态。如果您有兴趣,我可以分享一些如何运作的例子。