在python给定的元素值中使用webdriver检索任何元素的ID

时间:2016-11-22 05:59:28

标签: python selenium firefox

我正在使用selenium在firefox中记录测试用例。它记录按钮点击/或任何针对此问题的操作,如下所示,

driver = self.driver
driver.get(self.base_url + "/")
driver.find_element_by_id("ctl00__mainContent_lnkforgotpassword").click()
driver.find_element_by_id("ctl00__mainContent_ucForgotPassword1_btnNext").click()

这里驱动程序使用find_element_by_id方法来访问元素,它运行良好。

但我的要求是只给出该元素的文本, 喜欢 -

如果忘记密码是一个链接,我想检索此链接的 ID , 我会修改关于代码,

driver.find_element_by_id(getID("Forgot Password")).click().

有没有办法编写 getId()功能,以便检索链接的 ID 忘记密码 (或其他情况下的某些标签/按钮的ID)来自当前打开的页面?

2 个答案:

答案 0 :(得分:2)

无法直接以您提到的方式检索ID(或任何属性)。

但是,只有找到该网络元素后,才能找到网页元素的任何属性/属性。

执行以下操作:

elem = driver.find_element_by_link_text("Forgot Password") / returns Web Element, store it in some variable.
print elem.get_attribute("id")
print elem.get_property("id") // or use get_property

参考:

  1. http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.remote.webelement

答案 1 :(得分:-1)

您需要执行两个步骤: 1.通过链接文本获取元素 2.从该元素获取id的属性值。

您可以尝试类似下面的代码来创建您的功能: (注意:下面的代码是JAVA,你需要编写类似的python代码)

WebElement ele = driver.findElement(By.linkText("Forgot Password"));
ele.getAttribute("id");

以下链接将有助于作为参考:

How to grab just element id - using Selenium WebDriver 2

http://www.software-testing-tutorials-automation.com/2014/01/how-to-locate-element-by-link-text-or.html