使用ChromeDriver(Selenium)在Python中按CSS选择器查找元素

2024-05-16 23:58:51 发布

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

我在Python中使用Selenium的ChromeDriver,并试图在页面上找到一个包含以下HTML的按钮:

<input id="j_id0:SiteTemplate:j_id255:new" type="submit" name="j_id0:SiteTemplate:j_id255:new" value="New" class="kbutton-white">

我所知道的唯一不变的是id和name以“new”结尾,我尝试使用以下代码来标识并单击该元素:

^{pr2}$

但是,当我运行代码时会出现以下错误:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id*=new]"}

我错在这里了?在

更新:这个元素在一个iframe中,我必须在找到这个元素之前切换到iframe。请参阅评论以获得答案。在


Tags: 代码nameid元素newselenium页面element
1条回答
网友
1楼 · 发布于 2024-05-16 23:58:51

根据您共享以调用所需元素上的click()的HTML,您可以使用以下css_selector

driver.find_element_by_css_selector("input.kbutton-white[id$='new'][name$='new'][value='New']").click()

解释:

  • .kbutton-white:class属性。在
  • id$='new':id属性以new结尾
  • name$='new':名称属性以new结尾
  • value='New':value属性。在

但该元素似乎是动态的,因此您可能需要按如下方式归纳WebDriverWait

^{pr2}$

相关问题 更多 >