为什么 .text 总是空的?
Why is .text always empty?
我试过使用 getText() Referencing,但是当我使用该方法时,我总是收到错误 "WebElement object has no attribute getText()"
。我通过 YouTube 视频找到了 .text
,但我也没有从中获得结果。有什么想法吗?
from selenium import webdriver
driverPath = 'C:\Program Files (x86)\chromedriver.exe'
driver = webdriver.Chrome(driverPath)
driver.implicitly_wait(20)
driver.get ('https://shop.pricechopper.com/search?search_term=lettuce')
pageSource = driver.page_source
search = driver.find_elements_by_class_name ("css-dr3s47")
print (search[0].text)
driver.quit()
您正在将 Selenium 与 Python 一起使用,因此正确的方法是 .text
.getText()
用于 Selenium-Java 绑定.
你得到 null 的原因是元素没有正确呈现,而你试图与它们交互导致 null。
请使用 显式等待 或 time.sleep()
最坏情况来解决此问题。
此外,还有一个弹出窗口 window,我们必须单击关闭 Web 元素,以便 css-dr3s47
可用于 Selenium 视图端口。
代码:
driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(30)
wait = WebDriverWait(driver, 30)
driver.get("https://shop.pricechopper.com/search?search_term=lettuce")
try:
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@ng-click='processModalCloseClick()']"))).click()
print('Clicked on modal pop up closer button')
except:
pass
search = driver.find_elements_by_class_name ("css-dr3s47")
print (search[0].text)
进口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
getText returns 呈现大小大于 0 * 0 的元素,因此如果元素未显示或大小为零,则它不会 return 任何内容。
您可以做的两件事是:
- 在获取文本之前滚动到元素
Actions actionProvider = new Actions(driver);
// Performs mouse move action onto the element
actionProvider.moveToElement(search[0]).build().perform();
print(search[0].text)
- 使用文本内容
文本内容不检查显示或大小,它只提供内容
print(search[0].get_attribute("textContent"))
我试过使用 getText() Referencing,但是当我使用该方法时,我总是收到错误 "WebElement object has no attribute getText()"
。我通过 YouTube 视频找到了 .text
,但我也没有从中获得结果。有什么想法吗?
from selenium import webdriver
driverPath = 'C:\Program Files (x86)\chromedriver.exe'
driver = webdriver.Chrome(driverPath)
driver.implicitly_wait(20)
driver.get ('https://shop.pricechopper.com/search?search_term=lettuce')
pageSource = driver.page_source
search = driver.find_elements_by_class_name ("css-dr3s47")
print (search[0].text)
driver.quit()
您正在将 Selenium 与 Python 一起使用,因此正确的方法是 .text
.getText()
用于 Selenium-Java 绑定.
你得到 null 的原因是元素没有正确呈现,而你试图与它们交互导致 null。
请使用 显式等待 或 time.sleep()
最坏情况来解决此问题。
此外,还有一个弹出窗口 window,我们必须单击关闭 Web 元素,以便 css-dr3s47
可用于 Selenium 视图端口。
代码:
driver = webdriver.Chrome(driver_path)
driver.maximize_window()
driver.implicitly_wait(30)
wait = WebDriverWait(driver, 30)
driver.get("https://shop.pricechopper.com/search?search_term=lettuce")
try:
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@ng-click='processModalCloseClick()']"))).click()
print('Clicked on modal pop up closer button')
except:
pass
search = driver.find_elements_by_class_name ("css-dr3s47")
print (search[0].text)
进口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
getText returns 呈现大小大于 0 * 0 的元素,因此如果元素未显示或大小为零,则它不会 return 任何内容。
您可以做的两件事是:
- 在获取文本之前滚动到元素
Actions actionProvider = new Actions(driver); // Performs mouse move action onto the element actionProvider.moveToElement(search[0]).build().perform(); print(search[0].text)
- 使用文本内容
文本内容不检查显示或大小,它只提供内容
print(search[0].get_attribute("textContent"))