Перейти к содержимому

Фотография

Автоматизация сайта

Selenium

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Denis1995

Denis1995

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Nicula Denis Aurel

Отправлено 17 сентября 2020 - 14:49

Люди добрые - помогите мне решить проблему - пытаюсь автоматизировать сайт и не получаеться решить одну ошибку - даже не могу понять от чего она и что не так?

 

 

package com.company;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.HashMap;
public class Main {
@Test
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "/Users/denisnicula/Documents/Chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("https://credithub.ru/zaimy");

WebElement offerBlock;

(Ругаеться на жту строку и я не могу понять что с ней не так ?)offerBlock = driver.findElement(By.xpath("//div[contains(text(),'" + "offerName" + "')]/ancestor::div[@class='feed-item']"));

offerBlock.findElement(By.xpath(".//div[@class='feed-more-btn arrow_down']")).click();

WebElement link = offerBlock.findElement(By.xpath(".//a[@class='btn btn-1 btn_blue']"));

link.click();


HashMap<String, String> offers = new HashMap<String, String>();
offers.put("vivus", "http://example.com");
offers.put("moneyman", "http://example.com");

for (String offerName : offers.keySet()) {
String offerLink = offers.get(offerName);
System.out.println(offerName + " - " + offerLink);



}}}

/Users/denisnicula/Library/Java/JavaVirtualMachines/openjdk-14.0.1/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA CE.app/Contents/lib/idea_rt.jar=61424:/Applications/IntelliJ IDEA CE.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/denisnicula/Downloads/credithubs/target/classes:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-java/3.141.59/selenium-java-3.141.59.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-api/3.141.59/selenium-api-3.141.59.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-edge-driver/3.141.59/selenium-edge-driver-3.141.59.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-firefox-driver/3.141.59/selenium-firefox-driver-3.141.59.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-ie-driver/3.141.59/selenium-ie-driver-3.141.59.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-opera-driver/3.141.59/selenium-opera-driver-3.141.59.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-remote-driver/3.141.59/selenium-remote-driver-3.141.59.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-safari-driver/3.141.59/selenium-safari-driver-3.141.59.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-support/3.141.59/selenium-support-3.141.59.jar:/Users/denisnicula/.m2/repository/net/bytebuddy/byte-buddy/1.8.15/byte-buddy-1.8.15.jar:/Users/denisnicula/.m2/repository/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar:/Users/denisnicula/.m2/repository/com/google/guava/guava/25.0-jre/guava-25.0-jre.jar:/Users/denisnicula/.m2/repository/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar:/Users/denisnicula/.m2/repository/org/checkerframework/checker-compat-qual/2.0.0/checker-compat-qual-2.0.0.jar:/Users/denisnicula/.m2/repository/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3.jar:/Users/denisnicula/.m2/repository/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar:/Users/denisnicula/.m2/repository/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar:/Users/denisnicula/.m2/repository/com/squareup/okhttp3/okhttp/3.11.0/okhttp-3.11.0.jar:/Users/denisnicula/.m2/repository/com/squareup/okio/okio/1.14.0/okio-1.14.0.jar:/Users/denisnicula/.m2/repository/org/testng/testng/6.9.10/testng-6.9.10.jar:/Users/denisnicula/.m2/repository/com/beust/jcommander/1.48/jcommander-1.48.jar:/Users/denisnicula/.m2/repository/org/beanshell/bsh/2.0b4/bsh-2.0b4.jar:/Users/denisnicula/.m2/repository/org/seleniumhq/selenium/selenium-chrome-driver/3.141.59/selenium-chrome-driver-3.141.59.jar:/Users/denisnicula/.m2/repository/org/slf4j/slf4j-nop/1.7.13/slf4j-nop-1.7.13.jar:/Users/denisnicula/.m2/repository/org/slf4j/slf4j-api/1.7.13/slf4j-api-1.7.13.jar com.company.Main
Starting ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689}) on port 28602
Only local connections are allowed.
Please see https://chromedriver...-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.
сент. 17, 2020 5:40:47 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//div[contains(text(),'offerName')]/ancestor::div[@class='feed-item']"}
  (Session info: chrome=85.0.4183.102)
For documentation on this error, please visit: https://www.selenium...ch_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'MacBook-Pro.Dlink', ip: 'fd01:0:0:0:2d22:6663:db26:8792%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.15.6', java.version: '14.0.1'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 85.0.4183.102, chrome: {chromedriverVersion: 85.0.4183.87 (cd6713ebf92fa..., userDataDir: /var/folders/4m/nff453ps427...}, goog:chromeOptions: {debuggerAddress: localhost:61466}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: MAC, platformName: MAC, proxy: Proxy(), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}
Session ID: fa813745faafc70d1261d94c7dc906b8
*** Element info: {Using=xpath, value=//div[contains(text(),'offerName')]/ancestor::div[@class='feed-item']}
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:428)
at org.openqa.selenium.By$ByXPath.findElement(By.java:353)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
at com.company.Main.main(Main.java:24)

Прикрепленные файлы

  • Прикрепленный файл  credithubs.zip   23,04К   1 Количество загрузок:

  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 17 сентября 2020 - 20:43

Потому что локатор должен получиться такой:

//div[contains(text(),'Турбозайм')]/ancestor::div[@class='feed-item']

А у вас какой получился вы сами видите в сообщении об ошибке.


  • 0

#3 Denis1995

Denis1995

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Nicula Denis Aurel

Отправлено 18 сентября 2020 - 09:31

Потому что локатор должен получиться такой:

//div[contains(text(),'Турбозайм')]/ancestor::div[@class='feed-item']  Попробовал - //div[contains(text(),'vivus')]/ancestor::div[@class='feed-item'] и не идет(

А у вас какой получился вы сами видите в сообщении об ошибке.


  • 0

#4 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 18 сентября 2020 - 13:12

Потому что Vivus надо.


  • 0



Темы с аналогичным тегами Selenium

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных