Python/Selenium - 通过xpath查找元素 - 元素存在,但未找到

2 投票
1 回答
1964 浏览
提问于 2025-04-18 06:43

我有一个网站,上面有以下几个项目:

<input type="text" style="width:230px;" name="email"></input>

还有

<input type="password" style="width:230px;" name="password"></input>

我用以下的Python代码来设置值(用户名和密码在代码的早些地方已经设置好了):

Helper.getElementByxPath(mydriver,'//*[@name="email"]',username);
Helper.getElementByxPath(mydriver,'//*[@type="password"]',password);

而Helper.getElementByxPath的定义是:

def getElementByxPath(mydriver,xPath,valueString):
    try:
        a = mydriver.find_element_by_xpath(xPath);
        a.send_keys(valueString);
        return 1;
    except:
        return 0;

我遇到了以下错误:

Unexpected error: <class 'selenium.common.exceptions.NoSuchElementException'>
Unexpected error: <class 'selenium.common.exceptions.NoSuchElementException'>

我可能哪里做错了呢?我真是头疼。


我真是个傻瓜,我想要的表单嵌套在一个框架里。在一个框架里。

1 个回答

1

如果你的元素在一个 frame 中,你可以使用下面的代码:

driver.switch_to_frame(IDENTIFIER)

IDENTIFIER 可以是:
- 框架名称
- 框架的网页元素
- 框架的索引

你可以在这里查看API的详细信息: http://selenium-python.readthedocs.org/en/latest/api.html

完成在框架中的操作后,你可以按下面的方式返回到文档的顶部:

driver.switch_to_default_content()

撰写回答