2015-09-11 2 views
2

Я пытаюсь настроить таргетинг на пользователя в списке других пользователей. Например, я создал автоматический тестовый пример для создания пользователя с именем «tester1». Теперь я хотел бы создать тестовый пример, который находит и удаляет «tester1» в списке других пользователей. Прямо сейчас моя работа заключается в том, чтобы найти элемент по xpath, который предназначен только для определенной строки в списке пользователей. Вот веб-страницу код, который я работаю с:Python-Selenium Ориентация на пользователя в списке других пользователей

<span class="delete" data-reactid=".0.1.1.0.2.1.0.$usertree.1.0.0.$tester1.0.0.1"> 
    <span class="icon-dash" data-reactid=".0.1.1.0.2.1.0.$usertree.1.0.0.$tester1.0.0.1.0" 
    ></span> 

Вот что я использую для моего временного решения.

# Finds and clicks minus button to prompt deletion 
# Deletes the 4th in the list/to change this, modify the number in the quotes below 
element = driver.find_element_by_xpath("//tr[4]/td/div/span/span") 
element.click() 

# Finds and clicks Delete button 
element = driver.find_element_by_xpath("//button[2]") 
element.click() 

EDIT:

<div class="tree-view_children" data-reactid=".0.1.1.0.2.1.0.$usertree.1">       <table class="ss-table" data-reactide=".0.1.1.0.2.1.0.$usertree.1.0"> 
<tbody data-reactid=".0.1.1.0.2.1.0.$usertree.1.0.0"> 
<tr class="user-list-item" data-reactid=".0.1.1.0.2.1.0.$usertree.1.0.0.$tester1"> 
<td data-reactid=".0.1.1.0.2.1.0.$usertree.1.0.0.$tester1.0"> 
<div data-reactid=".0.1.1.0.2.1.0.$usertree.1.0.0.$tester1.0.0"> 
<span class="delete" data-reactid=".0.1.1.0.2.1.0.$usertree.1.0.0.$tester1.0.0.1"> 
<span class="icon-dash" data- reactid=".0.1.1.0.2.1.0.$usertree.1.0.0.$tester1.0.0.1.0"> 
</span> 
+1

Что именно ваш вопрос? –

ответ

1

Похоже, что вы можете рассчитывать на имя тестера быть частью data-reactid атрибута:

tester = "tester1" 

delete_button = driver.find_element_by_xpath("//span[@class = 'delete' and contains(@data-reactid, '$%s.')]" % tester) 
delete_button.click() 
+1

^Это правильный способ сделать это. Альтернативой XPaths в этом случае является CSS Selector, 'span.delete [data-reactid * = 'tester1']' – JeffC

+0

@alecxe Я обменял свои строки кода на то, что вы разместили. Вот мои результаты: «tester1» был размещен на странице, но «delete_button.click()» не нажимал кнопку «Удалить». На данный момент он попадает на страницу пользователя, где находится «tester1», и ничего не делает. Какие-либо предложения? – Chris

+0

@JeffC Я добавил ваше предложение в свой код, и у меня были те же результаты, что и я, выше^^^. – Chris

 Смежные вопросы

  • Нет связанных вопросов^_^