нажав на кнопку я не могу найти с селеном в питоне - PullRequest
0 голосов
/ 30 августа 2018

У меня есть этот HTML-элемент:

<button class="expedition_button awesome-button " onclick="attack(null, '6', 2, 0, '')"><div></div><div></div></button>

и я почему-то не могу кликнуть по нему с моим кодом ... просто выдает ошибку об отсутствии элемента по классу ...

Есть ли способ отправки функции кнопки "нажать" информацию, которую кнопка удерживает? отправка функции этой кнопки информации - "атака (ноль, '6', 2, 0, '')"

или найти кнопку, используя эту информацию

Пробовал xpath, но я не могу его найти .. просто дает мне это:

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: /html/body/div[2]/div/div[3]/div/div[2]/div[2]/div[2]/div[2]/div[2]/button

Когда я проверяю xpath, я вижу, что он меняется каждый раз, когда открывается страница ..

first second thrid

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Хорошо, поэтому я собрал все это как можно лучше, так как я не пишу код на Python, поэтому мой синтаксис может быть неправильным в некоторых местах, но я попытался сделать это правильно, в любом случае логика есть и комментарии должны объяснить, что я делаю:

Сначала давайте получим контейнер div:

//Get the container which holds the 4 divs and their buttons
containerDiv = browser.find_element_by_id('expedition_list')

//Get the divs which contain the buttons
containerDivs = containerDiv.find_elements_by_class_name('expedition_box')

//Iterate the containers
for val in containerDivs:
    //Get the div elements of the container
    childDivs = val.find_elements_by_tag_name('div')
    //iterate these divs, looking for the one which contains a button
    for val1 in childDivs
       buttonDiv = val1.find_elements_by_tag_name('button')
       //Check to see if we found a div with a button
       if len(buttonDiv) > 0
          for button in buttonDiv
          //If the button text is what we are looking for, click it
          if button.Text = 'whatever your button's text is'
             button.Click
0 голосов
/ 30 августа 2018

Полагаю, у вас есть элемент div с уникальным идентификатором 'expedition_info1'. Вы можете использовать xpath Axes , чтобы щелкнуть button относительно этого элемента div. Попробуйте:

driver.find_element_by_xpath("//div[@id='expedition_info1']/following-sibling::*[1]/button")// to click on 1st button element.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...