javascript - 硒发布到 Instagram
问题描述
我正在尝试在 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);
我仍然是初学者,所以任何帮助将不胜感激!
解决方案
您不需要任何 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();
推荐阅读
- python - 带有 python 3.5.6 的 Tensorflow 1.10(InvalidArgumentError:您必须使用 dtype float 为占位符张量“input_8/InputX”提供一个值)
- php - 为什么不能调用actiondelete?
- android - 如何通过 adb 输入触摸屏滑动来绘制图案?
- optaplanner - 在 OptaPlanner 中生成基准测试报告期间出现 ArrayIndexOutOfBoundsException
- javascript - 对象方法引用对象属性的两种方式之间的区别
- java - 无法从 Consul 加载 logback.xml
- android - 将自定义字体应用到 editText
- html - 如何计算加载 url 的延迟并使用 VBA 重新开始加载行中的下一个 URL
- android - 不想将不透明度传递给android中的字体
- javascript - Stripe 自定义支付表单实现