Selenium pythondocument.getElementsByClassName()

2024-09-29 21:35:38 发布

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

使用pythom将数据自动输入pythom'3网站。 我试着到处找,如果有一个以上的元素,如何按类选择元素,但我不知道如何选择手风琴开关[1]。在selenium上什么都不会发生,但它在任何浏览器上都能正常工作。另外,有没有办法只使用常规的javascript或jquery命令?公司名称:

accordion=find_element_by_class("accordion-toggle"[1])
accordion.click()
#otheraccordion=find_element_by_css_selector("#AdvancedAddress > div.accordion-heading.in > div.accordion-toggle > span.accordionExpandCollapse")
#otheraccordion.click()
StreetNameField=driver.find_element_by_id("Advanced_FindMyParcel_PropertyStreetName")
StreetNameField.send_keys("Sherman")
ZipField=driver.find_element_by_id("Advanced_FindMyParcel_PropertyZip")
ZipField.send_keys("90201")
ZipButton=driver.find_element_by_id("btnSearchFindMyParcels")
ZipButton.click()

Tags: divid元素bydriverelementfindadvanced
2条回答

您正在寻找find_element(s)_by_css_selector-reference here-使用css前缀'.classname`来指示类。在

例如寻找

<div class='theClass'>

driver.find_elements_by_css_selector('.theClass')

您还可以使用By语法:

^{pr2}$

编辑
问题似乎更多的是Clicking元素,而不是找到它。在

  • 确保元素可见
  • 对于Chrome,您可能需要模拟鼠标悬停在元素上,然后再单击此元素-请参见Actions / ActionChains MoveToElement将鼠标悬停在元素上。在
  • 对于IE,您可能需要确保浏览器/框架在元素单击之前获得焦点-您可能需要应用一个类似one of these的方法。在

实际上,您可以使用document.getElementsByClassName()execute_script()调用:

driver.execute_script("document.getElementsByClassName('accordion-toggle')[0].click();")

但我不会为这么简单的任务执行javascript。使用^{}更容易找到元素:

^{pr2}$

相关问题 更多 >

    热门问题