Как найти элемент в соответствии с заданным HTML - PullRequest
0 голосов
/ 08 ноября 2019
<input value="Order (ESHOP)" class="btn" name="order_eshop" title="Order (ESHOP)" type="button" onclick="Sfdc.logServer('CUSTOM_URL_BUTTON', {id: '00b41000002iuj6', name: 'Order_ESHOP'}, Sfdc.Logging.LogLevel.INFO);
openIntegration('/servlet/servlet.Integration?scontrolCaching=1&amp;lid=00b41000002iuj6&amp;eid=a0863000007SV1q&amp;ic=1&amp;isdtp=vw&amp;linkToken=VmpFPSxNakF4T1MweE1TMHhNRlF5TVRvd09EbzBNaTQyT1RWYSx0eno3X1lSS1lOY1hORmtKb2ZvM3BxLFlXWmtNR0po', 'height=600,location=no,resizable=yes,toolbar=no,status=no,menubar=no,scrollbars=1', 1)">

Я не могу найти xpath для этого. У меня один элемент на одном пути Order (ESHOP) . Когда я пытаюсь использовать индексирование, он не находит правильный xpath.

1 Ответ

0 голосов
/ 08 ноября 2019

Требуемый элемент является JavaScript включенным элементом, поэтому для определения местоположения / взаимодействия с элементом вам нужно вызвать WebDriverWait для elementToBeClickable(), и вы можете использовать любое из следующих решений:

  • Использование CSS_SELECTOR:

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.btn[name='order_eshop'][value='Order (ESHOP)'][title='Order (ESHOP)']")));
    
  • Использование XPATH:

    WebElement element = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='btn' and @name='order_eshop'][@value='Order (ESHOP)' and @title='Order (ESHOP)']")));
    
...