【问题标题】:How to get the translated text from google translator using selenium?如何使用 selenium 从谷歌翻译器获取翻译文本?
【发布时间】:2018-10-08 18:52:27
【问题描述】:

我尝试了以下代码来使用 selenium 获取谷歌翻译文本:

result=driver.findElement(By.xpath("//body/div[@id='result_box']/span"));

我也试过这些:

1.result=driver.findElement(By.xpath(".//body/div[@id='result_box']/span"));
2.result=driver.findElement(By.xpath("./*div[@id='result_box']/span"));
3.result=driver.findElement(By.xpath(".//div[@id='result_box']/span"));
4.result=driver.findElement(By.xpath("//div[@id='result_box']/span"));
5.result=driver.findElement(By.xpath(".//body/div[@id='result_box']/span"));
6.result=driver.findElement(By.xpath("./*[@id='result_box']/span"));

但以上都不起作用。然后我尝试通过以下方式获取文本:

result=driver.findElement(By.id("result_box")).findElement(By.tagName("span")); 
translatedtext=result.getText();

这会返回一个结果,但是当我尝试在 JTextarea 中显示结果时,它会显示“????”而不是实际的翻译文本。

我也尝试过 'result.getAttribute("innerHTML")' 但它也显示了一些问号 (?????) 而不是 JTextarea 中的原始翻译文本。

我该如何解决这个问题?

【问题讨论】:

    标签: java selenium


    【解决方案1】:

    结果框有标签<span>,而不是<div>

    result = driver.findElement(By.xpath(".//span[@id='result_box']/span"));
    

    或者

    result = driver.findElement(By.xpath(".//*[@id='result_box']/span"));
    

    带双斜线。

    【讨论】:

      【解决方案2】:

      你也可以像这样使用 css 选择器:

      result = driver.findElement(By.cssSelector("#result_box>span"));

      人们说这比 xpath 快

      【讨论】:

        【解决方案3】:

        这对我有用,但是我用的是 python,你可以尝试在 Java 中使用等效的 find_element_by_id 函数

        driver.find_element_by_id("gt-res-dir-ctr").text
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-20
          • 1970-01-01
          • 2017-01-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多