2015-12-14 4 views
-2

Я пытаюсь получить доступ к веб-сайту, используя Selenium webdriver, но я застрял, чтобы узнать элемент.элемент selenium webdriver не найден

WebElement button3 = driver.findElement(
    By.cssSelector(".device-selector-dropdown-child.device-selected")); 

Я использую css, xpath, но никто из них не работает.

package org.openqa.selenium.chrome; 

//import java.util.Scanner; 
import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.By; 
//import org.openqa.selenium.JavascriptExecutor; 
//import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 



public class marslogin{ 
static WebDriver driver; 
static WebDriver document; 

public static void main(String[] args) throws InterruptedException { 


    System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe"); 

    driver = new ChromeDriver(); 
    //driver = new FirefoxDriver(); 


    driver.get("https://accounts.google.com/ServiceLogin?"); 
    driver.manage().window().maximize(); 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

    //WebElement id = driver.findElement(By.name("username")); 
    WebElement id = driver.findElement(By.name("Email")); 
    id.sendKeys("[email protected]"); 

    WebElement button = driver.findElement(By.name("signIn")); 
    button.click(); 

    WebElement pass = driver.findElement(By.id("Passwd")); 
    pass.sendKeys("battery123"); 

    WebElement button1 = driver.findElement(By.id("signIn")); 
    button1.click(); 

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    //driver.get("https://play.google.com/store/apps/collection/topselling_free"); 
    //driver.manage().window().maximize(); 
    driver.get("https://play.google.com/store/apps/details?id=com.facebook.orca"); 
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
    Thread.sleep(1000); 
    WebElement button2 = driver.findElement(By.xpath("//*[@id='body-content']/div/div/div[1]/div[1]/div/div[1]/div/div[3]/div/div[1]/span/span/span/button[2]")); 
    button2.click(); 
    driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
    WebElement button3 = driver.findElement(By.cssSelector(".device-selector-dropdown-child.device-selected")); 
    button3.click(); 
    //WebElement button4 = driver.findElement(By.xpath("//*[@id='device-selector-container']/div/div/div/button[2]")); 
    //button4.click(); 
    //WebElement button5 = driver.findElement(By.xpath("//*[@id='purchase-ok-button']")); 
    // button5.click(); 
    //WebElement button6 = driver.findElement(By.cssSelector("#close-dialog-button")); 
    //button6.click(); 



} 
+0

удалить личные данные, такие как адрес и пароль Gmail, из кода – drets

+0

@drets 21 это не личные данные. это всего лишь тестовая учетная запись. –

+0

кто-нибудь, пожалуйста, помогите –

ответ

1

Если элемент не виден, добавьте ожидание присутствия элемента. Для этого есть метод isDisplayed. Вы также можете использовать visibilityofElement в ExpectedConditions. Для примера.

driver.findElement(foo.bar).isDisplayed(); 

или

использование WebDriverWait

Если оба не работает, то проблема в локатора. Добавьте точку останова на странице и проверьте, найден ли элемент с этим локатором.

+0

Просьба привести пример, давая ответ. – Sagar007

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