我正在尝试从Facebook个人资料的“约页”中提取硒(java & chrome)的生日。我怎么发动汽车呢?
在Facebook的“关于”选项卡上,有一个包含个人生日的元素(如果披露的话)。我真的很想把它当作一根线。这里的例子:https://www.facebook.com/zuck/about?lst=100002006436635%3A4%3A1570508289
我试过driver.findElementByXPath和driver.findElementByClassName以及PartialLinkText。我以前在不同的地方做过这件事,也许我只是做错了什么。
我尝试过的XPath代码如下:
.findElementByXPath("//*[@class='_4bl9 _2pis _2dbl']");
.findElementByXPath("//*[contains(text(), 'birthdate')]");请指导我如何定位这个元素或提取生日。
发布于 2019-10-08 06:40:25
试试这个xpath,让我知道
//span[text()='Birthday']//../following-sibling::div示例代码:
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Test {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "./libs/chromedriver 4");
WebDriver driver=new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://www.facebook.com/zuck/about?lst=100002006436635%3A4%3A1570508289");
driver.findElement(By.name("email")).sendKeys("<username>");
driver.findElement(By.name("pass")).sendKeys("<password>");
driver.findElement(By.name("pass")).submit();
driver.findElement(By.name("pass")).sendKeys("<password>");
driver.findElement(By.name("pass")).submit();
driver.get("https://www.facebook.com/zuck/about?lst=100002006436635%3A4%3A1570508289");
System.out.println(driver.findElement(By.xpath("//span[text()='Birthday']//../following-sibling::div")).getText());
}
}输出
1984年5月14日
发布于 2019-10-08 06:43:18
您能否尝试使用以下xpath:
.//*[text()='Birthday']/parent::div/following-sibling::div下面是我从您共享的链接复制的html。
<span class="_c24 _2ieq">
<div>
<span class="accessible_elem">Birthday</span>
</div>
<div>May 14, 1984</div>
</span>解释:
.//*[text()='Birthday']将定位生日跨度
/parent::div将定位父div
following-sibling::div将定位包含道布的div
然后可以通过getText()或getAttribute("innerText")方法获得字符串值。
https://stackoverflow.com/questions/58280159
复制相似问题