java - ChromeDriver 找不到要单击的元素

标签 java webdriver instagram

Chrome - WebDriver 找不到 Instagram 登录页面的登录按钮。我已经尝试了 3 种方式(请参阅下面的代码),但在所有方式中,按钮都没有被点击。非常感谢任何帮助!

代码:

    System.setProperty("webdriver.chrome.driver","F:\\scraper - by 
    Url\\chromedriver.exe");

    ChromeDriver driver = new ChromeDriver();


    driver.get("https://www.instagram.com/accounts/login/?hl=en");
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.findElement(By.name("username")).sendKeys("username");
    driver.findElement(By.name("password")).sendKeys("testtest");

    //driver.findElements(By.tagName("button")).get(1).click();

    WebDriverWait wait = new WebDriverWait(driver, 10);

    WebElement button = 

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[.='Log in']")));
    button.click();

    //driver.findElement(By.xpath("//button[.='Log in']")).click();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

最佳答案

您在xpath中犯了一个小错误,您使用了小写字母的Log in中的i,但是在页面上,该单词是驼峰式的,所以您需要使用登录

或者

您可以使用以下 xpath 作为登录按钮:

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[text()='Log In']")));

关于java - ChromeDriver 找不到要单击的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55459337/

相关文章:

Java hashmap 即使键和值不为空也给出空值

java - 抑制 Java Findbugs 错误 (EI_EXPOSE_REP)

javascript - 在 Selenium 中使用 JavaScriptExecutor 和 Java - 它获取值但不将其显示在字段中

api - Instagram API 中的 'access token' 和 'code' 有什么区别?

java - 如何仅使用 session ID 或现有 webdriver session 的 cookie 来获取 webdriver 对象

java - JScrollPane 在应该垂直滚动时水平滚动

css - 如何单击代码段中存在部分文本的表记录 by.cssselector

python - 导入错误 : No module named 'selenium'

javascript - 使用 PHP cURL 的 X-Insta-Forwarded-For 错误 Instagram API

javascript - instagram api - 仅从客户端授权检索用户 ID/用户名?