当前位置: 首页 > 知识库问答 >
问题:

硒找不到元素

司寇季
2023-03-14

大家好,我正试图在网站中找到一个元素,但出于某种原因,它不允许我。该网页是Reddit的登录形式,我尝试输入用户名和密码,但当我列出所有输入时,它只出现在顶部搜索栏中。我想这是因为它就像在另一个“标签”一样,它会弹出到前面,但我不知道如何管理它。提前谢谢。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

chrome_options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications" : 2}
chrome_options.add_experimental_option("prefs",prefs)
driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get('https://www.reddit.com')
driver.set_window_size(1200, 1300)

login_button = driver.find_element_by_link_text('Log In')
login_button.click()

username = driver.find_element_by_css_selector('input')
username.send_keys("test code to the form")

共有1个答案

邓德本
2023-03-14

一旦登录按钮被点击一个iframe打开,所以你首先必须切换到那个iframe

driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src,'login')]"))

还有一个问题是username=driver。通过_css_选择器(“输入”)查找_元素_,因为输入不是唯一的css选择器
试试这个:

username = driver.find_element_by_css_selector('[id="loginUsername"]')

此外,最好按以下方式定位登录按钮:

login_button = driver.find_element_by_xpath('//a[contains(@href,"login")]')

最后,在插入用户名和密码后,不要忘记使用

driver.switch_to.default_content()
 类似资料:
  • 任何提示都会很有帮助!

  • 我试图运行下面的selenium代码,但我得到了一个异常: 封装演示; Selenium试图在单击登录名webelement之前找到webelement的电子邮件ID。请帮忙。

  • URL:http://bcmprod.brill.com/rsuite-cms/ 我正在尝试从上面的客户端站点自动下载手稿。我在C#中使用selenium phantomjs。 我有用户凭据。但是,组成登录表单的元素(例如用户名、密码)在页面源中不存在,但当您在浏览器中检查这些元素时,这些元素就存在了。 这些是我用来从“检查元素”中定位它们的xpath(ID是动态分配的,这就是我没有使用它们的原因

  • 我正在eBay网站上使用Selenium WebDriver。我正在尝试将下拉菜单从“最佳匹配”更改为“最低价格” 我使用XPATH以防元素是动态的。Python仍然说找不到元素。有人能帮忙吗?以下是结果右上方下拉菜单的示例链接:https://www.ebay.co.uk/sch/i.html?_from=R40

  • 我正在自动化一个枯燥的数据输入任务,所以我创建了一个程序,基本上是使用Selenium为我点击和键入。它跑得很好!除非它到达这个特定的“编辑详细信息...”元素,但是,无论我尝试什么方法,selenium都无法找到该元素。 我尝试使用一个CSS选择器来访问ID,但没有成功。我还尝试使用XPATH,并尝试通过给它一个带有按钮文本的'contains'语句来更加具体。最后,我使用selenium ID

  • 我需要在HTML中找到此元素 我就是这样做的 使用XPATH,由Chrome控制台生成: 使用XPATH,它正在寻找某种正则表达式: 最后使用XPATH,它通过页面精确到我的元素 他们都没有工作。All给出了一个例外 硒。常见的例外情况。InvalidSelectorException:Message:u'由于以下错误,给定的选择器无法找到具有xpath表达式的元素:\n语法错误:表达式不是合法表