【问题标题】:how can call an action in specific text selenium如何在特定文本 selenium 中调用操作
【发布时间】:2019-10-12 07:44:09
【问题描述】:

我的想法是在“是”时调用一个动作,但我不想在不是时调用和动作。例子。在下一个代码中,每个 id 都是一张照片(我可以看到每张照片都有不同的 ID)。在这个里面有一个 包含一个 Button 和一个包含 text()='yes'or'no'。我想点击按钮,但只是在 中包含“是”的照片中。

<div>
  <div>
     <div id="213142143fcfa5238352110">
        <div>
             <spam>
             </spam>
             <a>
                'yes'
             </a>
        </div>
     </div>
     <div id="5da16123cfcfa5238352160">
        <div>
             <spam>
             </spam>
             <a>
                'no'
             </a>
        </div>
     </div>
     <div id="y6565345225afasdas521220">
        <div>
             <spam>
             </spam>
             <a>
                'no'
             </a>
        </div>
     </div>
     <div id="00943324fa52323432432405">
        <div>
             <spam>
             </spam>
             <a>
                'yes'
             </a>
        </div>
     </div>
  </div>
</div>

例如,您可以在下一张照片中看到。我想从 'Publicidad' 内部的

标签: python selenium web-scraping


【解决方案1】:

要在 div 中获取 spam 以及子 a 和特定文本,请在 XPATH 下方使用:

  1. //a[contains(.,'yes')]/ancestor::div[@id][1]//spam
  2. //a[contains(.,'yes')]/preceding-sibling::spam
  3. //div[@id and .//a[contains(.,'yes')]]//spam

【讨论】:

  • 我上传了一张照片...看看这张照片也许我可以更好地解释我想要什么
【解决方案2】:

试试这个:

a_link = browser.find_elements_by_tag_name("a")
            for a in a_link:
                try:
                    if a.text == "yes":
                        a.click()
                except:
                    print("NO in a tag")

已编辑:

 columns = browser.find_elements_by_css_selector("._5jmm._5pat._3lb4.f_3naoxe8gn")
                for column in columns:
                    #place the class in the css selector its not visible
                    a_link = column.find_element_by_css_selector("CLASS")
                    try:
                        if a.text == "yes":
                            #place the class of the div you want to click
                            button = column.find_element_by_css_selector("CLASS")
                            button.click()
                    except:
                        print("NO in a tag")

【讨论】:

猜你喜欢
  • 2017-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-09
  • 2023-02-23
  • 1970-01-01
  • 2014-07-02
  • 1970-01-01
相关资源
最近更新 更多