【问题标题】:Selenium post to Instagram硒发布到 Instagram
【发布时间】:2018-11-29 07:11:28
【问题描述】:

我正在尝试在 JAVA 中使用 Selenium 在 chrome 上单击 Instagram 上的发布按钮(移动仿真)。几周前我做的时候它工作了,但现在 Instagram 似乎改变了一些东西,我无法让它工作!

检查按钮的元素给了我这个:

<span class="glyphsSpriteNew_post__outline__24__grey_9 u-__7" aria-label="New Post"></span>

我尝试通过多种方式点击它:

WebElement post = driver.findElement(By.xpath("//*[@id=\"react-root\"]/section/nav[2]/div/div/div[2]/div/div/div[3]/span"));

WebElement post =  driver.findElement(By.cssSelector("glyphsSpriteNew_post__outline__24__grey_9.u-__7"));

我点击它:

((JavascriptExecutor)driver).executeScript("arguments[0].click()", post);

我还是一个初学者,所以任何帮助将不胜感激!

【问题讨论】:

  • 作为初学者,您是从 Automating Instagram 开始的吗?
  • 我认为第一个问题是您是否确定您设法找到所需的元素。如果是这样,可能是您需要使用不同的方法来单击它,例如 Selenium 的 click()。您遇到的错误\行为是什么?

标签: javascript css selenium macros selenium-chromedriver


【解决方案1】:

点击元素不需要任何 javascript 调用。

通过可见文本找到按钮

    WebElement my_button = driver.findElement(By.linkText("New Post"));

    WebElement my_button = driver.findElement(By.partialLinkText("New Post"));

通过相对xpath查找按钮

    WebElement my_button = driver.findElement(By.xpath("//span[contains(@aria-label,'New Post')]"));

点击按钮

    my_button.click();

【讨论】:

  • 这可能不是真的。作为一个必须支持 5 种不同浏览器的人,Selenium 的常规 click() 对某些元素没有帮助,我必须使用 javascript 才能单击该元素。
  • 是的,不幸的是它也不起作用。 Selenium 通过它并且不执行点击,或者以另一种方式我没有得到这样的元素异常。
猜你喜欢
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-25
相关资源
最近更新 更多