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

2024-03-28 23:01:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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只要给出元素的文本, 就像-

如果忘记密码是一个链接,并且我想检索此链接的ID, 我会把about代码修改为

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

那么,是否有办法编写getId()函数,以便从当前打开的页面中检索链接忘记密码ID(或某些标签/按钮的ID)(在其他情况下)


Tags: selfid元素密码by链接driver记录
2条回答

您需要执行两个步骤: 一。按链接文本获取元素 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

没有办法像您提到的那样直接检索ID(或任何属性)。

但是,只要找到web元素,就可以找到web元素的任何属性。

执行以下操作:

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

相关问题 更多 >