如何用Python获得Selenium Chromedriver的Id?

2024-10-06 10:24:30 发布

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

如果可能的话,我想在Python中使用Selenium Chromedriver直接获取iFrame的Id,而不使用Javascript,但是我不知道为什么会失败

当我这样做,我得到错误的Id结果如下所示

>>> driver.find_element_by_class_name("MyClass").id
u'5b6a-c153-4e7f-90b2-b7e45'

如果我在Chrome控制台上发送以下Javascript命令,我将获得正确的帧Id:

> document.getElementsByClassName('MyClass')[0].id  
< "MyFrame89-0-bed65f30"

现在,当我尝试在driver.execute_script()中使用相同的Javascript命令时,它没有显示任何内容

>>> driver.execute_script("document.getElementsByClassName('MyClass')[0].id")
>>>

所以,我有两个问题:

1-driver.find_element_by_class_name().id未显示正确的Id

2-driver.execute_script()它没有显示任何内容

我做错了什么

谢谢你的帮助

更新

示例html代码在这里https://jsfiddle.net/k3x9rsa6/1/


Tags: name命令idexecutebydrivermyclassscript
1条回答
网友
1楼 · 发布于 2024-10-06 10:24:30

您正在检索的id不是html id属性。 尝试以下方法之一检索:

driver.find_element_by_class_name("MyClass").get_attribute("id")

或者

driver.find_element_by_class_name("MyClass").get_property("id")

相关问题 更多 >