在Selenium中使用Python浏览Javascript生成的内容?

时间:2012-03-01 14:04:26

标签: javascript python selenium webdriver

我编写了一个脚本来测试涉及数据输入的过程。几页,但写完之后我发现了表格和从javascript生成的主要内容。 以下是我编写的脚本的片段,在初始链接之后,内容由JS生成(它是我的第一个python脚本,所以可以原谅任何错误);

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
import time

browser = webdriver.Firefox()
browser.get('http://127.0.0.1:46727/?ajax=1')
assert "Home" in browser.title
# Find and click the Employer Database link
empDatabaseLink = browser.find_element_by_link_text('Employer Database')
click = ActionChains(browser).click(on_element = empDatabaseLink)
click.perform()
# Content loaded by the above link is generated by the JS
# Find and click the Add Employer button
addEmployerButton = browser.find_element_by_id('Add Employer')
addEmployer = ActionChains(browser).click(on_element = addEmployerButton)
addEmployer.perform()
browser.save_screenshot(r'images\Add_Employer_Form.png')
# Input Employer name
employerName = browser.find_element_by_id('name')
employerName.send_keys("Selenium")
browser.save_screenshot(r'images\Entered_Employer_Name.png')
# Move to next
nextButton = broswer.find_element_by_name('button_next')
moveForward = ActionChains(browser).click(on_element = nextButton)
# Move through various steps
# Then
# Move to Finish
moveForward = ActionChains(browser).click(on_element = nextButton)

如何访问不在源中的页面元素?我一直在环顾四周。找到GetEval但找不到我可以使用的任何东西:/

1 个答案:

答案 0 :(得分:1)

嗯,对于未来的人们,我们上面的对话似乎得出结论xpath是标记所寻找的。所以请记住尝试使用xpath,并使用Selenium IDE和Firebug来定位特别顽固的页面元素。