Selenium WebDriver - Facebook发布问题

时间:2016-07-16 06:19:33

标签: java selenium testing automation webdriver

我真的无法自动化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

1 个答案:

答案 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上回答一些问题!

干杯!