как можно вызвать действие в конкретном тексте селена - PullRequest
0 голосов
/ 12 октября 2019

Моя идея состоит в том, чтобы вызвать действие, только когда "да", но я не хочу вызывать и действие, когда это не так. Пример. в следующем коде каждый идентификатор является фотографией (я вижу, что у каждой фотографии разные идентификаторы). Внутри этого есть , который содержит 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>

, например, вы можете увидеть на следующей фотографии. Я хочу взять xpath из

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Чтобы получить spam внутри div с дочерним 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
0 голосов
/ 12 октября 2019

Попробуйте:

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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...