我的HTML代码如下:
<div class="card-platform">
<span class="sr-only">Hosted at the </span>
<!-- react-text: 365 -->
ANDROID
<!-- /react-text -->
<span class="sr-only"> app store</span>
</div>
</div>
我想要检索“ANDROID”这个词。有许多元素具有“ANDROID”值。 HTML元素的另一个值是“IOS”。很少有ANDRIOD,很少有人有IOS。我想打印HTML中定义的每个元素的ANDRIOD / IOS。
如何使用selenium获取此值?
答案 0 :(得分:2)
不在div
标记内的必填文字,因为该元素只是评论,但文字位于WebElement MyText = driver.findElement(By.xpath("//div[@class='card-platform']"));
JavascriptExecutor jse = (JavascriptExecutor)driver;
String platformName = (String) jse.executeScript("return arguments[0].childNodes[4].nodeValue", MyText);
内。您可以使用以下代码获取所需的值:
{{1}}
答案 1 :(得分:0)
这是字符串操作的一个简单练习:
String fullText = driver.findElement(By.className("card-platform")).getText();
assert fullText.equals("Hosted at the \nANDROID\n app store");
String prefix = driver.findElements(By.className("sr-only")).get(0).getText();
String suffix = driver.findElements(By.className("sr-only")).get(1).getText();
assert prefix.equals("Hosted at the ");
assert suffix.equals(" app store");
String yourText = fullText.replace(prefix, "").replace(suffix, "");
assert yourText.equals("ANDROID");
当然,您必须针对所有不同情况调整定位器。这是基于您提供的一小段代码片段。
答案 2 :(得分:-1)
在类似的情况下,我使用下面的代码得到了一个数字。
from requests import get
from bs4 import BeautifulSoup
pagina = "https://example"
response = get(pagina)
soup = BeautifulSoup(response.text, "html.parser")
cont = soup.find(class_="Trsdu(0.3s)")
print(cont.text)