Как использовать python selenium find_element_by_xpath узнать выше ключевое слово - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь найти строку.Но, похоже, это не работает.

HTML :

<form name="form1" method="post" action="?cz=del&wbid=7683290543&zjt=aaa&lx=CNAME&xl=%C4%AC%C8%CF&fs=" onSubmit="return b_ifsf('delete?');" id="form1">
<td style="width:120px">
<input type="hidden" name="ip" value="aaa.xxx.com.a.bdydns.com." >
<input type="submit" name="rpt$btnDelete" value="delete" />
</td>
</form>
<form name="form1" method="post" action="?cz=del&wbid=2324242122&zjt=bbb&lx=CNAME&xl=%C4%AC%C8%CF&fs=" onSubmit="return b_ifsf('delete?');" id="form1">
<td style="width:120px">
<input type="hidden" name="ip" value="bbb.xxx.com.a.bdydns.com." >
<input type="submit" name="rpt$btnDelete" value="delete" />
</td>
</form>
<form name="form1" method="post" action="?cz=del&wbid=2324242553&zjt=ccc&lx=CNAME&xl=%C4%AC%C8%CF&fs=" onSubmit="return b_ifsf('delete?');" id="form1">
<td style="width:120px">
<input type="hidden" name="ip" value="ccc.xxx.com.a.bdydns.com." >
<input type="submit" name="rpt$btnDelete" value="delete" />
</td>
</form>

Как найти ключевое слово bbb.xxx.com.a.bdydns.com. а затем нажмите отправить, чтобы удалить его?

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

@ Решение EVNRaja было в правильном направлении.

Чтобы найти текст bbb.xxx.com.a.bdydns.com. , затем щелкните соответствующий элемент со значением атрибут как удалить Вы можете использовать любое из следующих решений:

  • Использование xpath и click():

    driver.find_element_by_xpath("//form[@id='form1' and @name='form1']//input[@name='ip' and @value='bbb.xxx.com.a.bdydns.com.']//following::input[1]").click()
    
  • Использование xpath и submit():

    driver.find_element_by_xpath("//form[@id='form1' and @name='form1']//input[@name='ip' and @value='bbb.xxx.com.a.bdydns.com.']//following::input[1]").submit()
    
0 голосов
/ 03 декабря 2018

Вы должны иметь возможность использовать комбинацию селектора css:

[value='bbb.xxx.com.a.bdydns.com.'] + input

Код:

driver.find_element_by_css_selector("[value='bbb.xxx.com.a.bdydns.com.'] + input").click() #.submit()

Первая часть - это селектор атрибут = значение, затем «+»* соседний братский комбинатор , за которым следует селектор элементов;говоря, найти input элемент тега, который является смежным элементом родственного элемента к элементу с атрибутом value, имеющим значение bbb.xxx.com.a.bdydns.com.

0 голосов
/ 02 декабря 2018

URL, который вы пытаетесь идентифицировать, указан в качестве скрытого элемента.

Предоставленный вами HTML-код: <input type="hidden" name="ip" value="bbb.xxx.com.a.bdydns.com." >

Все скрытые элементы в браузере могут иметь цель.Пример:

Учтите, что есть текстовое поле, и оно не вводит числовые значения в качестве входных данных, если конечный пользователь вводит какие-либо числовые значения, рядом с текстовым полем будет отображаться код ошибки.Здесь, пока мы не введем числовой текст, сообщение об ошибке (текст внутри элемента тега html) будет скрыто.

В HTML-коде, которым вы поделились, значение, которое вы хотите проверить, было заключено в тег ввода и имеетtype="hidden" name="ip" value="bbb.xxx.com.a.bdydns.com.", мы можем написать составной xpath следующим образом:

Пример с несколькими составными операторами: //input[@type = 'hidden' and @name = 'ip' and contains(@value, 'bbb.xxx.com.a.bdydns.com.')]/following-sibling::input

или A Простой пример: //input[contains(@value, 'bbb.xxx.com.a.bdydns.com.')]/following-sibling::input

С помощью этого кода xpath мы можем непосредственно идентифицировать отправку, и на следующем шаге вы можете нажать кнопку.

...