Python selenium 从文本区域获取文本
Python selenium getting text from text area
我正在尝试将文本区域 消息 复制到一个变量中,以便我可以解析它。
正文区有留言如下:
<?xml version='1.0' encoding='UTF-8'?><Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><SubmitResponse xmlns="http://eftr</Error></SubmitResponse></Body></Envelope>
HTML如下:
<textarea class="v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly" rows="5" tabindex="-1" readonly="" style="width: 100%; height: 100%;"></textarea>
我正在尝试以下配置和其他配置,但没有成功:
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
full_xpath = r'/html/body/div[1]/div/div[2]/div/div[2]/div/div[2]/div/div/div[3]/div/div/div[2]/div/div[2]/div/div/div/div/div[3]/textarea'
path_to_chromedriver = r'C:\chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path=path_to_chromedriver)
.........
.........
content = browser.find_element_by_xpath(full_xpath).text
我不确定如何实现上述目标。
基本上 print(content)
应该产生以下结果:
<?xml version='1.0' encoding='UTF-8'?><Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><SubmitResponse xmlns="http://eftr</Error></SubmitResponse></Body></Envelope>
使用以下 xpath
来识别元素。
content = browser.find_element_by_xpath("//textarea[@class='v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly']").text
或使用get_attribute("innerHTML")
content = browser.find_element_by_xpath("//textarea[@class='v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly']").get_attribute("innerHTML")
我建议使用 WebDriverWait()
并等待 visibility_of_element_located()
content=WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//textarea[@class='v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly']"))).text
您需要导入以下库
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
textcontent=WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//textarea[@class='v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly']"))).get_attribute("value")
在文本区域中,文本存储为值,
示例文本区域:
<!DOCTYPE html>
<html>
<body>
<h1>The textarea element</h1>
<form action="/action_page.php">
<label for="w3review">Review of W3Schools:</label>
<textarea id="w3review" name="w3review" rows="4" cols="50">
At w3schools.com you will learn how to make a website. They offer free tutorials in all web development technologies.
</textarea>
<br><br>
<input type="submit" value="Submit">
</form>
<p>Click the "Submit" button and the form-data will be sent to a page on the
server called "action_page.php".</p>
</body>
</html>
您可以使用上面的示例 html 并在控制台中尝试
$('textarea').value
我正在尝试将文本区域 消息 复制到一个变量中,以便我可以解析它。
正文区有留言如下:
<?xml version='1.0' encoding='UTF-8'?><Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><SubmitResponse xmlns="http://eftr</Error></SubmitResponse></Body></Envelope>
HTML如下:
<textarea class="v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly" rows="5" tabindex="-1" readonly="" style="width: 100%; height: 100%;"></textarea>
我正在尝试以下配置和其他配置,但没有成功:
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
full_xpath = r'/html/body/div[1]/div/div[2]/div/div[2]/div/div[2]/div/div/div[3]/div/div/div[2]/div/div[2]/div/div/div/div/div[3]/textarea'
path_to_chromedriver = r'C:\chromedriver' # change path as needed
browser = webdriver.Chrome(executable_path=path_to_chromedriver)
.........
.........
content = browser.find_element_by_xpath(full_xpath).text
我不确定如何实现上述目标。
基本上 print(content)
应该产生以下结果:
<?xml version='1.0' encoding='UTF-8'?><Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body><SubmitResponse xmlns="http://eftr</Error></SubmitResponse></Body></Envelope>
使用以下 xpath
来识别元素。
content = browser.find_element_by_xpath("//textarea[@class='v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly']").text
或使用get_attribute("innerHTML")
content = browser.find_element_by_xpath("//textarea[@class='v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly']").get_attribute("innerHTML")
我建议使用 WebDriverWait()
并等待 visibility_of_element_located()
content=WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//textarea[@class='v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly']"))).text
您需要导入以下库
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
textcontent=WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//textarea[@class='v-textarea v-widget v-readonly v-has-width v-has-height v-textarea-readonly']"))).get_attribute("value")
在文本区域中,文本存储为值,
示例文本区域:
<!DOCTYPE html>
<html>
<body>
<h1>The textarea element</h1>
<form action="/action_page.php">
<label for="w3review">Review of W3Schools:</label>
<textarea id="w3review" name="w3review" rows="4" cols="50">
At w3schools.com you will learn how to make a website. They offer free tutorials in all web development technologies.
</textarea>
<br><br>
<input type="submit" value="Submit">
</form>
<p>Click the "Submit" button and the form-data will be sent to a page on the
server called "action_page.php".</p>
</body>
</html>
您可以使用上面的示例 html 并在控制台中尝试
$('textarea').value