【问题标题】:How do i select element in a list present in an un-ordered list using selenium python如何使用 selenium python 选择无序列表中存在的列表中的元素
【发布时间】:2022-01-20 15:11:55
【问题描述】:

这是我正在处理的网站https://www.bseindia.com/corporates/ann.html?curpg=1&annflag=1&dt=20211021&dur=P&dtto=20211027&cat=Insider%20Trading%20/%20SAST&scrip=&anntype=A 在这里,我可以发送“安全名称”的代码,但为了提交它,我需要单击提供安全名称后出现的下拉元素。我如何用硒实现这一目标。我使用了下面的代码,但它不起作用(StaleElementReferenceException)

security_name = driver.find_element_by_id("scripsearchtxtbx")
security_name.send_keys('INE350H01032')
sec_click = driver.find_element_by_xpath('//*[@id="ulSearchQuote2"]/li')
sec_click.click()

【问题讨论】:

    标签: python selenium web-scraping


    【解决方案1】:

    这也可以使用 Selenium 中的 Keys Library 来完成。 Selenium Keys不仅可以像字符串一样发送输入语句,还可以发送命令,例如转义、制表符,或者在这种情况下输入。您更新后的代码应如下所示:

    security_name = driver.find_element_by_id("scripsearchtxtbx")
    security_name.send_keys('INE350H01032')
    security_name.send_keys(Keys.ENTER)
    sec_click = driver.find_element_by_xpath('//*[@id="ulSearchQuote2"]/li')
    sec_click.click()
    

    这些被称为特殊键。有关这方面的更多示例和更多信息,请参阅this link

    【讨论】:

      【解决方案2】:

      您可以使用 Xpath:

      security_name = driver.find_element_by_id("scripsearchtxtbx")
      security_name.send_keys('INE350H01032')
      sec_click = driver.find_element_by_xpath("//ul[@id='ulSearchQuote2']/li//strong[text()='INE350H01032']")
      sec_click.click()
      same -->("//ul[@id='ulSearchQuote2']//strong[text()='INE350H01032']")
      

      您可以在此处查看有关 xpath 的更多信息:xpath

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      • 1970-01-01
      相关资源
      最近更新 更多