【发布时间】:2013-10-03 21:56:44
【问题描述】:
问题:无法使用存储的变量选择元素 id 对象。
情况:我需要打开一个页面,进行选择,将该选择存储在变量card_id 中,然后在最后一页上找到ID 为pick_id 的元素和存储的变量,然后单击它。希望我对这种情况很清楚。如果没有,请询问。我试图找到 Selenium API 文档来处理这个问题,不。
测试代码:
def test_00_validation_test(self):
driver = self.driver
driver.get(self.base_url)
driver.find_element_by_id("first_page").click()
driver.find_element_by_id("make_pick").click()
driver.find_element_by_xpath("(//input[@name='64'])[2]").click()
driver.find_element_by_id("save_pick").click()
self.assertEqual("Pick Was Saved", self.close_alert_and_get_its_text())
card_id = driver.find_element_by_id("testingNum").get_attribute("value")
driver.find_element_by_id("confirm_pick_page").click()
driver.find_element_by_id("pick_id", card_id).click()
【问题讨论】:
-
如果你传递了 id 并且 selenium 没有找到它,它可能不在 html 中。如果你 100% 在 html 中,它可能在 iframe 中。如果不知道你到底是什么,就帮不了你。
-
driver.find_element_by_id("pick_id", card_id) 是什么意思?您不能将两个参数传递给此函数。请说明您要在此功能中实现的目标。
-
@user1411110 完全正确。我试图用第二个论点欺骗我的方式。没有。我也试过这样
driver.find_element_by_id("pick_id").click(card_id),不。我知道这些是无效的,但我希望找不到另一种方法来处理这种情况。 -
另外,对于“我想要实现什么”的问题。我所做的每个选择都存储在服务器上,我们将其隐藏在 HTML 中为
testingNum仅用于测试目的,并为其分配了值。我将该值获取并存储为card_id。因此,当我转到confirm_pick_page时,我可以发现它与pick_id元素相关联。