我真的无法自动化Facebook发布流程。 我的脚本无法正确跟踪新闻Feed中的textarea。
我尝试了不同的选择器,甚至是Selenium IDE建议的选择器,但没有用。
以下是我的代码片段:
//xpath for status update box
WebElement statusUpdateBox = driver.findElement(By.xpath(DemoTestData.XPATH_STATUSUPDATE_BTN));
//click the status update box
driver.findElement((By.xpath(DemoTestData.XPATH_STATUSUPDATE_BTN))).click();
//input data in the status update box
statusUpdateBox.sendKeys(DemoTestData.DATA_STATUSUPDATE_MSG);
WebElement postButton = driver.findElement(By.xpath(DemoTestData.XPATH_STATUSUPDATE_BTN));
//click 'post' button
postButton.click();
xPath for
DemoTestData.XPATH_STATUSUPDATE_BTN = "html/body/div[1]/div[2]/div[1]/div/div[2]/div[2]/div[2]/div/div[3]/div/div/div[2]/div/div/div/form/div[1]/div/div[2]/textarea";
可能缺少什么? 非常感谢。 :D
答案 0 :(得分:0)
这是我发现的。当我在我的FB页面中检查你的xpath时,它没有返回任何结果。 (一个非常方便的工具是一个名为firefox的免费简单火道的插件,如果你不这样做,一定要搞定!)
按钮似乎不太可能有以" textarea"结尾的xpath。你确定这是对的吗?
当您运行测试时,文本是否已填写?如果没有,(第一个)问题可能是文本框的findElement。
当我看到更多时,我发现css实际上非常简单" textarea" 。所以如果你使用driver.FindElement(By.CssSelector(“textarea”)) 应该返回文本区域。
按钮有一点奇怪的CSS(对我而言,我对此也很陌生),但我相信你可以通过其中的文字找到它。用我的语言说" Plaatsen"它可能会说些不同的东西。入住Firepath!
像driver.FindElement(By.XPath(" // * [text()[contains(。,' Plaatsen')]]")之类的东西应该返回按钮。
我希望它有所帮助!我希望你发现这个答案很有用,任何有关这方面的提示都会受到赞赏,这是我第一次在强大的Stack Overflow上回答一些问题!
干杯!