-1
所以,我想從下拉列表中選擇一個值。代碼看起來像這樣:在Python中的鑄造元素
def selectDropdown(self, locator, value):
select_box = self.driver.find_element_by_id(locator)
select_box.click()
options = [x for x in select_box.find_elements_by_tag_name("li")]
for element in options:
print ("element ---->", element)
print ("value ---->", value)
if element == value:
element.click()
break
該代碼工作,但元素和值是由於某種原因不同。看看打印輸出:
('element ---->', <selenium.webdriver.remote.webelement.WebElement object at 0x0000000003080908>)
('value ---->', '\xce\xa4\xcf\x8d\xcf\x80\xce\xbf\xcf\x82 \xce\x92 \xce\xa0\xce\xb5\xce\xb9\xce\xb8\xce\xb1\xcf\x81\xcf\x87\xce\xb9\xce\xba\xce\xbf\xcf\x8d')
('element ---->', <selenium.webdriver.remote.webelement.WebElement object at 0x0000000003080C18>)
('value ---->', '\xce\xa4\xcf\x8d\xcf\x80\xce\xbf\xcf\x82 \xce\x92 \xce\xa0\xce\xb5\xce\xb9\xce\xb8\xce\xb1\xcf\x81\xcf\x87\xce\xb9\xce\xba\xce\xbf\xcf\x8d')
('element ---->', <selenium.webdriver.remote.webelement.WebElement object at 0x0000000003080B70>)
('value ---->', '\xce\xa4\xcf\x8d\xcf\x80\xce\xbf\xcf\x82 \xce\x92 \xce\xa0\xce\xb5\xce\xb9\xce\xb8\xce\xb1\xcf\x81\xcf\x87\xce\xb9\xce\xba\xce\xbf\xcf\x8d')
那麼我該怎麼做,如果這樣的聲明,如果工作正常?
下面是HTML代碼:
<div class="chosen-drop">
<div class="chosen-search">
<input type="text" autocomplete="off" readonly="" />
</div>
<ul class="chosen-results">
<li class="active-result" style="" data-option-array-index="1">Τύπος Α</li>
<li class="active-result" style="" data-option-array-index="2">Τύπος Β</li>
<li class="active-result" style="" data-option-array-index="3">Τύπος Γ</li>
</ul>
</div>
是你所需要的element.text ==價值? – Sebastian
我試過,但它不起作用。我想要的值是相同的,所以if語句工作,但元素顯示的地址和值是utf-8。 – fdgenie
您的意思是類似於(?): 中的元素選項: fetcher = element.get_attribute(value) print(「element ---->」,element) print(「value ---->」 ,值) 如果提取器==值: element.click() 破 因爲我嘗試,也和我有一個錯誤: UnicodeDecodeError錯誤:「ASCII」編解碼器不能在位置0解碼字節0xce:順序不在範圍內(128) – fdgenie